__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
- Para hacer referencia a los elementos almacenados en un array, tienes que utilizar el valor clave entre corchetes:
$modulos1 [9]
$modulos2 ["DWES"]
- Es interesante recordar que 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:
- 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.
- Como ya hemos visto, 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";
- En PHP tampoco es necesario que especifiques el valor de la clave.
- Al omitirla 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 (puedes usar como alternativa la función shuffle ($imagenes) la cuál desordena el vector), o usar un rand para obtener indices aleatorios.
- 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>
|
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
- Todos los lenguajes de programación tienen primitivas o incluso instrucciones propias
- Leer valores del teclado
- Mostrar resultados en pantalla
- En el caso de PHP, hemos visto alguna primitiva para mostrar valores por pantalla (En realidad lo que hace es escribirlas al fichero html que entrega al cliente), como son echo y print
- Pero nos falta ver como podemos hacer que el cliente aporte valores al programa escribiéndolos por el teclado
- Para leer datos lo hacemos mediante un formulario (hay más métodos, como leer un fichero , ...)
- El formulario será parte de la página del cliente, en él tendremos cajas de texto donde el cliente podrá escribier contenido
Archivo:Formularo.png
- A continuación vamos a ver de modo básico como crear formularios en el cliente y a continuación que es lo que nos interesa, como leerlos
Formulario HTML
- Etiqueta form con una serie de atributos de los que nos interesan dos principalmente
- action especifica el fichero que se ejecutará cuando se envíe el formulario
- method especifica el modo en el que se van a pasar los parámetros (valores introducidos a los difernetes objetos del formulario, o que tengan asignados por defecto).
<form action="mifichero.php" method="POST"
......
</form>
- Por supuesto hay más atributos, el id es importante para poder acceder a ese elemento con javascript; estos son los que nosotros debemos conocer para usar
- 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"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</div>
- 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'] ?>
|