__NOTITLE__
Arrays
- Un tipo de datos compuesto es aquel que te permite almacenar más de un valor.
- En PHP puedes utilizar dos tipos de datos compuestos: el array y el objeto.
- Los objetos los veremos más adelante.
- Un array es un tipo de datos que nos permite almacenar varios valores.
- Cada miembro del array se almacena en una posición a la que se hace referencia utilizando un valor clave.
- Las claves pueden ser numéricas o asociativas.
// array numérico
$modulos1 = array(0 => "Programación", 1 => "Bases de datos", ..., 9 => "Desarrollo web en entorno servidor");
// array asociativo
$modulos2 = array("PR" => "Programación", "BD" => "Bases de datos", ..., "DWES" => "Desarrollo web en entorno servidor");
- Tipos de array
-
- En función de su clave pueden ser indexados (clave numérica) o asociativos (Clave con valor)
- En los arrays numéricos empezamos por 0
- En funcion del tipo de índices que tenga rpuede ser unidimensional o multidimensional
Crear un array
- Podemos usar el operador array();
$capitales = array();
$capital ["españa"=>"madrid", "italia"=>"roma","Alemania"=>"Berlin"];
$capitales = array("españa"=>"madrid", "italia"=>"roma","Alemania"=>"Berlin");
$capital ["españa"=>"madrid", "italia"=>"roma","Alemania"=>"Berlin"];
- También se puede crear directamente co []
$capitales["españa"]="madrid";
$capitales[["italia"]="roma"
$capitales["Alemania"]="Berlin";
- Existen muchas funciones asociadas a los arrays
- count($array) me da el número de elementos
Tarea
Define un array de 5 ciudades y recorrelo con un bucle for usando count()
|
Ver el contenido de un array
- Podemos usar la función ya conocida var_dump()
- También podemos usar la fucnion print_r.
Funciones para manejar matrices
- Tamaño: count(), sizeof()
- Operador +: concatena dos matrices
- Recorrer una matriz next(), prev(), reset(), current(),key(), reset()
- busqueda preg_grep(), array_search(), in_array()
- Ordenar sort()
- Aquí tenemos un listado de todas las funciones, hay muchas muchas http://es1.php.net/manual/en/ref.array.php
En PHP existe la función print_r, que nos muestra todo el contenido del array que le pasamos. Es muy útil para tareas de depuración.
Función print_r
Para hacer referencia a los elementos almacenados en un array, tienes que utilizar el valor clave entre corchetes:
$modulos1 [9]
$modulos2 ["DWES"]
Los arrays anteriores son vectores, esto es, arrays unidimensionales. En PHP puedes crear también arrays de varias dimensiones almacenando otro array en cada uno de los elementos de un array.
// array bidimensional
$ciclos = array(
"DAW" => array ("PR" => "Programación", "BD" => "Bases de datos", ..., "DWES" => "Desarrollo web en entorno servidor"),
"DAM" => array ("PR" => "Programación", "BD" => "Bases de datos", ..., "PMDM" => "Programación multimedia y de dispositivos móviles")
);
Para hacer referencia a los elementos almacenados en un array multidimensional, debes indicar las claves para cada una de las dimensiones:
$ciclos ["DAW"] ["DWES"]
En PHP no es necesario que indiques el tamaño del array antes de crearlo. Ni siquiera es necesario indicar que una variable concreta es de tipo array. Simplemente puedes comenzar a asignarle valores:
// array numérico
$modulos1 [0] = "Programación";
$modulos1 [1] = "Bases de datos";
...
$modulos1 [9] = "Desarrollo web en entorno servidor";
// array asociativo
$modulos2 ["PR"] = "Programación";
$modulos2 ["BD"] = "Bases de datos";
...
$modulos2 ["DWES"] = "Desarrollo web en entorno servidor";
Ni siquiera es necesario que especifiques el valor de la clave. Si la omites, el array se irá llenando a partir de la última clave numérica existente, o de la posición 0 si no existe ninguna:
$modulos1 [ ] = "Programación";
$modulos1 [ ] = "Bases de datos";
...
$modulos1 [ ] = "Desarrollo web en entorno servidor";
Tarea
- Generar un array de 10 posiciones de valores enteros entre 1 y 100.
- Recorrer el array, guardando el valor m�ximo y m�nimo y obtener la media
- Mostrar los resultados por pantalla.
|
Tarea
- Implementar una función que busca si un determinado valor aparece en una matriz.
- La función recibe 2 parámetros: la matriz y el elemento a buscar, y devuelve si ha encontrado el valor (TRUE) o no (FALSE).
- Implementar la función, con los parámetros (el array, y el valor a buscar).
- Para probar la función implementada, generar un array de 100 posiciones de valores enteros entre 1 y 100. #Generar, también, el número que hay que buscar en el array.
- Llamar a la función con el array y el valor como parámetros de la función.
- Mostrar los resultados por pantalla.
|
Tarea
Random Images
- Escribir un programa que:
- Inicialice un vector con 10 imágenes (podéis utilizar éste código.php que crea el vector $imagenes)
- La página debe mostrar, aleatoriamente, 3 imágenes (utilizar la función shuffle ($imagenes) la cuál desordena el vector)
- Cada 5 segundos ha de refrescarse la página para ir mostrando imágenes distintas (podéis usar, por
ejemplo, este trozo de código HTML y añadirlo en el <HEAD> de la página:
<META HTTP-EQUIV=Refresh CONTENT="5; URL=vuestra_pagina.php">
</html>
Ejemplo:
|
Variables globales Vs superglobales
- Ya hemos visto como en php una variable tiene el ámbito en el cual es accesible y visible
- Las variables son locales a la función en la cual aparecen, si queremos acceder dentro de una función a una variable del script y actuar sobre su valor, debemos hacerla global.
- PHP Dispone un un importante conjunto de variables superglobales.
- El desarrollador tiene acceso a dichas variables en cualquier momento del script.
- El sistema se encarga de tenerlas actualizadas, con el valor correspondiente
- PHP incluye unas Son variables internas predefinidas que pueden usarse desde cualquier ámbito, por lo que reciben el nombre de variables superglobales.
- No es necesario que uses global para acceder a ellas.
- Cada una de estas variables es un array que contiene un conjunto de valores
- Posteriormente veremos cómo se utilizan los arrays).
- Aquí puedes acceder a las variables superglobales disponibles en PHP se pueden ver son las siguientes:
- Son las siguientes
- $GLOBALS Hace referencia a todas las variables disponibles en el ámbito global
- $_SERVER Información del entorno del servidor y de ejecución
- $_GET Variables HTTP GET
- $_POST Variables HTTP POST
- $_FILES Variables de Carga de Archivos HTTP
- $_COOKIE Cookies HTTP
- $_SESSION Variables de sesión
- $_REQUEST Variables HTTP REQUEST. Un array asociativo que por defecto contiene el contenido de $_GET, $_POST y $_COOKIE.
- $_ENV
- Analizaremos una de ellas
- $_SERVER.
- Contiene información sobre el entorno del servidor web y de ejecución. Entre la información que nos ofrece esta variable, tenemos:
- Principales valores de la variable $_SERVER
- $_SERVER['PHP_SELF']: script que se está ejecutando actualmente.
- $_SERVER['SERVER_ADDR']: dirección IP del servidor web.
- $_SERVER['SERVER_NAME']: nombre del servidor web.
- $_SERVER['DOCUMENT_ROOT']: directorio raíz bajo el que se ejecuta el guión actual.
- $_SERVER['REMOTE_ADDR']:dirección IP desde la que el usuario está viendo la página.
- $_SERVER['REQUEST_METHOD']:método utilizado para acceder a la página ('GET', 'HEAD', 'POST' o 'PUT')
Actividad
Haz un script que no de la información de las variables vistas anteriormente
|
Leer datos
- Para leer datos lo hacemos de un formulario
- el formulario lo envía el cliente
- Obligatoriamente necesitamos el atributo name de la etiqueta input
- EJ. en el emisor tenemos
Dime un número:
<FORM ACTION="tabla.php" METHOD="GET">
<INPUT TYPE="text" NAME="numero">
<INPUT TYPE="submit" VALUE="Enviar">
Al presionar el botón de enviar se envía la página al servidor
La página que especificamos en el botón action la gestiona tabla.php en este caso
En el servidor para recuperar el valor utilizaremos la tabla supergobal
una tabla es una estructura indexada por índices
leeremos el índice nombre de variable de la tabla
$_GET o $_POST dependiendo de el método de envío
Valor numérico introducido: <?php echo $_GET['numero'] ?>
|