|
|
Línea 1: |
Línea 1: |
− | {{TEP}}
| + | |
| <!-- Revisar ortografía--> | | <!-- Revisar ortografía--> |
| <!-- Revisar contenidos--> | | <!-- Revisar contenidos--> |
Línea 39: |
Línea 39: |
| <!--2--> | | <!--2--> |
| <div class="slide"> | | <div class="slide"> |
− | *Depediendo del valor de la posición podemos clasificar los arraiis de dos tipos | + | *Dependiendo del valor de la posición podemos clasificar los arrays de dos tipos |
| #'''''Indexado'''''. Cada valor es un entero que indica su posición, empezando por cero. | | #'''''Indexado'''''. Cada valor es un entero que indica su posición, empezando por cero. |
| #'''''Asociativo'''''. El valor de cada posición tiene un significado diferente a la posición que ocupa y puede ser de cualquier tipo | | #'''''Asociativo'''''. El valor de cada posición tiene un significado diferente a la posición que ocupa y puede ser de cualquier tipo |
Línea 65: |
Línea 65: |
| ===Array numéricos o indexados=== | | ===Array numéricos o indexados=== |
| *Clasificación en función de la clave que llevan | | *Clasificación en función de la clave que llevan |
− | #Clave numérica posicional : La clave especifica la posicion de cada elemento | + | #Clave numérica posicional : La clave especifica la posición de cada elemento |
| #Clave con valor: La clave tiene un significado por sí mismo y tiene '''asociado''' un valor | | #Clave con valor: La clave tiene un significado por sí mismo y tiene '''asociado''' un valor |
| ;Arrays indexados | | ;Arrays indexados |
| :En los arrays numéricos empezamos por 0 | | :En los arrays numéricos empezamos por 0 |
− | :En funcion del tipo de índices que tenga puede ser unidimensional o multidimensional (varios índices). | + | :En función del tipo de índices que tenga puede ser unidimensional o multidimensional (varios índices). |
| </div> | | </div> |
| | | |
Línea 105: |
Línea 105: |
| Creamos un array indexado de ciudades | | Creamos un array indexado de ciudades |
| */ | | */ |
− | $miArray = array("burgos","zaragoza","huesca", "teruel","soria"); | + | $miArray = array("Burgos","Zaragoza","Huesca", "Teruel","Soria"); |
− | $miArray = ["burgos","zaragoza","huesca", "teruel","soria"]; | + | $miArray = ["Burgos","Zaragoza","Huesca", "Teruel","Soria"]; |
| | | |
| </source> | | </source> |
Línea 114: |
Línea 114: |
| <div class="slide"> | | <div class="slide"> |
| ====Escribir en un array==== | | ====Escribir en un array==== |
− | *Simplemento hay que asignar un valor a una posición del array | + | *Simplemente hay que asignar un valor a una posición del '''''array''''' |
− | *Al ser indexado, si no se pone valor en índice se pondrá una unidad más al último valor asignado | + | *Al ser '''indexado''', si no se pone valor en índice se pondrá una unidad más al último valor asignado |
| *Si pongo un valor superior al número de índices, el siguiente elemento estará en una posición mas | | *Si pongo un valor superior al número de índices, el siguiente elemento estará en una posición mas |
| <source lang=php> | | <source lang=php> |
Línea 130: |
Línea 130: |
| <div class="slide"> | | <div class="slide"> |
| ;Escribir en un array | | ;Escribir en un array |
− | *Podemos ver gráficamente como queda el array | + | *Podemos ver gráficamente como queda el '''array''' |
| [[Archivo:arrayNotas.png]] | | [[Archivo:arrayNotas.png]] |
− | *En realidad las posiciones no especificadas no existen | + | *En realidad las posiciones no especificadas no existen |
| </div> | | </div> |
| | | |
Línea 139: |
Línea 139: |
| [[Archivo:arrayNotas2.png]] | | [[Archivo:arrayNotas2.png]] |
| *Vemos como la posición 2,3 y 4 no van a existir con valores en el array | | *Vemos como la posición 2,3 y 4 no van a existir con valores en el array |
− | *Las puedo usar expícitamente | + | *Las puedo usar explícitamente |
| <source lang=php> | | <source lang=php> |
| $notas[2]= 8; | | $notas[2]= 8; |
Línea 149: |
Línea 149: |
| ===Leer un array=== | | ===Leer un array=== |
| *Hemos de diferenciar entre dos conceptos | | *Hemos de diferenciar entre dos conceptos |
− | ;Leer un elemento de un array | + | ;Leer un elemento de un '''array''' |
| Simplemente accedemos a su posición por el índice | | Simplemente accedemos a su posición por el índice |
| <source lang=php> | | <source lang=php> |
Línea 161: |
Línea 161: |
| <div class="slide"> | | <div class="slide"> |
| ;Recorrer un array | | ;Recorrer un array |
− | *Tenemos difernetes modos de recorre un array, pues el entorno nos ofrece diferentes modos | + | *Tenemos diferentes modos de recorre un array, pues el entorno nos ofrece diferentes modos |
| count($nombreArray); | | count($nombreArray); |
| *Es una función que nos dice cuantos elementos tiene un array que le pasamos como argumentos | | *Es una función que nos dice cuantos elementos tiene un array que le pasamos como argumentos |
| *Ejemplo | | *Ejemplo |
| <source lang=php> | | <source lang=php> |
− | $ciudades = ["burgos","zaragoza","huesca", "teruel","soria"]; | + | $ciudades = ["Burgos","Zaragoza","Huesca", "Teruel","Soria"]; |
| $numeroCiudadades = count($ciudades); | | $numeroCiudadades = count($ciudades); |
| echo "El array tienen $numeroCiudades ciudades<br/>"; | | echo "El array tienen $numeroCiudades ciudades<br/>"; |
Línea 175: |
Línea 175: |
| <!--2--> | | <!--2--> |
| <div class="slide"> | | <div class="slide"> |
− | ;Recorrer un array | + | ;Recorrer un '''array''' |
| *Vamos a usarla con un ejemplo | | *Vamos a usarla con un ejemplo |
| {{MRM_Actividad| | | {{MRM_Actividad| |
Línea 203: |
Línea 203: |
| | | |
| echo "Valor de la nota media ".($total/10)."<br />"; | | echo "Valor de la nota media ".($total/10)."<br />"; |
− | echo "Valor minimo".$min."<br />"; | + | echo "Valor mínimo".$min."<br />"; |
− | echo "Valor maximo ".$max."<br />"; | + | echo "Valor máximo ".$max."<br />"; |
| </source> | | </source> |
| | | |
Línea 213: |
Línea 213: |
| <div class="slide"> | | <div class="slide"> |
| ;Recorrer un array | | ;Recorrer un array |
− | *Vemos que si todos los elementos están seguidos este funciona bien, pero si no es así no funcioría correctamete | + | *Vemos que si todos los elementos están seguidos este funciona bien, pero si no es así no funcionaría correctamente |
− | {{Pregunta|¿Por qué no conviene usar la función count}} | + | {{Pregunta|¿Por qué no conviene usar la función '''''count'''''}} |
| <source lang=php> | | <source lang=php> |
| $capitales = array(); | | $capitales = array(); |
− | $capital ["españa"=>"madrid", "italia"=>"roma","Alemania"=>"Berlin"]; | + | $capital ["España"=>"Madrid", "Italia"=>"Roma","Alemania"=>"Berlín"]; |
| </source> | | </source> |
| </div> | | </div> |
Línea 234: |
Línea 234: |
| *También se puede crear directamente con [] | | *También se puede crear directamente con [] |
| <source lang=php> | | <source lang=php> |
− | $capitales["españa"]="madrid"; | + | $capitales["España"]="Madrid"; |
− | $capitales["italia"]="roma" | + | $capitales["Italia"]="Roma" |
− | $capitales["Alemania"]="Berlin"; | + | $capitales["Alemania"]="Berlín"; |
| </source> | | </source> |
| </div> | | </div> |
Línea 242: |
Línea 242: |
| <!--2--> | | <!--2--> |
| <div class="slide"> | | <div class="slide"> |
− | *Existen muchas funciones asociadas a los arrays | + | *Existen muchas funciones asociadas a los '''''arrays''''' |
| count($array) | | count($array) |
| :me da el número de elementos. | | :me da el número de elementos. |
| {{Tarea| | | {{Tarea| |
− | Define un array de 5 ciudades y recorrelo con un bucle for usando count() | + | Define un array de 5 ciudades y recorrerlo con un bucle '''''for''''' usando '''''count()''''' |
| }} | | }} |
| </div> | | </div> |
Línea 276: |
Línea 276: |
| ===Ver el contenido de un array=== | | ===Ver el contenido de un array=== |
| *Podemos usar la función ya conocida '''''var_dump()''''' | | *Podemos usar la función ya conocida '''''var_dump()''''' |
− | *También podemos usar la fucnion print_r. | + | *También podemos usar la funciín '''''print_r'''''. |
| ===Funciones para manejar matrices=== | | ===Funciones para manejar matrices=== |
| *Tamaño: count(), sizeof() | | *Tamaño: count(), sizeof() |
Línea 288: |
Línea 288: |
| <!--2--> | | <!--2--> |
| <div class="slide"> | | <div class="slide"> |
− | *Para hacer referencia a los elementos almacenados en un array, tienes que utilizar el valor clave entre corchetes: | + | *Para hacer referencia a los elementos almacenados en un '''''array''''', tienes que utilizar el valor clave entre corchetes: |
| <source lang=php> | | <source lang=php> |
| $modulos1 [9] | | $modulos1 [9] |
Línea 317: |
Línea 317: |
| $ciclos ["DAW"] ["DWES"] | | $ciclos ["DAW"] ["DWES"] |
| </source> | | </source> |
− | *En PHP no es necesario que indiques el tamaño del array antes de crearlo. | + | *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. | + | *Ni siquiera es necesario indicar que una variable concreta es de tipo '''''array'''''. |
| *Como ya hemos visto, simplemente puedes comenzar a asignarle valores: | | *Como ya hemos visto, simplemente puedes comenzar a asignarle valores: |
| </div> | | </div> |
LENGUAJE PHP: TRABAJANDO CON ESTRUCTURAS DE INFORMACIÓN : ARRAYS
PHP Los Arrays: estructuras de datos fundamentales en php
Conceptos generales de Arrays | Ejercicios | Práctica |
Volver
_
_
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.
Definición
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.
- Dependiendo del valor de la posición podemos clasificar los arrays de dos tipos
- Indexado. Cada valor es un entero que indica su posición, empezando por cero.
- Asociativo. El valor de cada posición tiene un significado diferente a la posición que ocupa y puede ser de cualquier tipo
// 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");
- Arrays asociativos Vs indexados
Array numéricos o indexados
- Clasificación en función de la clave que llevan
- Clave numérica posicional : La clave especifica la posición de cada elemento
- Clave con valor: La clave tiene un significado por sí mismo y tiene asociado un valor
- Arrays indexados
- En los arrays numéricos empezamos por 0
- En función del tipo de índices que tenga puede ser unidimensional o multidimensional (varios índices).
Trabajar con un array
- A la hora de trabajar con arrays, hay que saber operar con ellos
- Crear o definir un array
- Asignar, agregar valores al array
- Leer elementos del array
- Borrar elementos del array
Crear un array
- Podemos usar el operador array();
- A partir de la versión 5.3 se puede directamente usar el operador []
- Vemos como crear un array
- En php no hay que especificar ni índice ni lógicamente tipo
El array como hemos comentado va a ser un conjunto de elementos, cada tipo de cada elemento dependerá del valor que contenga en cada momento , y por supuesto puede ser modificado (tanto el valor como el tipo).
- Crear un array
/*
Creamos una variable array llamada miArray vacía
Dos formas equivalentes
*/
$miArray = array();
$miArray = [];
/*
Creamos un array indexado de ciudades
*/
$miArray = array("Burgos","Zaragoza","Huesca", "Teruel","Soria");
$miArray = ["Burgos","Zaragoza","Huesca", "Teruel","Soria"];
Escribir en un array
- Simplemente hay que asignar un valor a una posición del array
- Al ser indexado, si no se pone valor en índice se pondrá una unidad más al último valor asignado
- Si pongo un valor superior al número de índices, el siguiente elemento estará en una posición mas
$notas =[];
$notas[]=10;
$notas[]=7;
$notas[5]= 8;
$notas [] =9;
$notas [] =6;
- Escribir en un array
- Podemos ver gráficamente como queda el array
- En realidad las posiciones no especificadas no existen
- Vemos como la posición 2,3 y 4 no van a existir con valores en el array
- Las puedo usar explícitamente
Leer un array
- Hemos de diferenciar entre dos conceptos
- Leer un elemento de un array
Simplemente accedemos a su posición por el índice
echo "la nota primera es $notas[0]";
echo "la nota última es $nota[7]";
- Recorrer un array
- Tenemos diferentes modos de recorre un array, pues el entorno nos ofrece diferentes modos
count($nombreArray);
- Es una función que nos dice cuantos elementos tiene un array que le pasamos como argumentos
- Ejemplo
$ciudades = ["Burgos","Zaragoza","Huesca", "Teruel","Soria"];
$numeroCiudadades = count($ciudades);
echo "El array tienen $numeroCiudades ciudades<br/>";
//mostrará 5 ciudades
- Recorrer un array
- Vamos a usarla con un ejemplo
Actividad
- Creamos 10 notas aleatorias, y posteriormente las visualizamos
- Sacamos la máxima la mínima y la media
|
<?php
//Creo la variable array de notas
$notas=[];
//Relleno el array con 10 notas
//$notas = array_fill(0, 10,rand(1,10));
for ($a=0;$a<10;$a++)
$notas[$a]=rand(1,10);
$min = $notas[0];
$max = $notas[0];
for ($a=0;$a<10;$a++){
echo "Valor de la posición $a = ". $notas[$a]."<br />";
$total+=$notas[$a];
$min = $notas[$a]<$min ? $notas[$a] : $min;
$max = $notas[$a]>$max ? $notas[$a] : $max;
}
echo "Valor de la nota media ".($total/10)."<br />";
echo "Valor mínimo".$min."<br />";
echo "Valor máximo ".$max."<br />";
- Recorrer un array
- Vemos que si todos los elementos están seguidos este funciona bien, pero si no es así no funcionaría correctamente
Pregunta
¿Por qué no conviene usar la función count
|
$capitales = array();
$capital ["España"=>"Madrid", "Italia"=>"Roma","Alemania"=>"Berlín"];
- Recorrer un array
$capitales = array("España"=>"Madrid",
"Italia"=>"Roma",
"Alemania"=>"Berlin");
$capital ["España"=>"Madrid",
"Italia"=>"Roma",
"Alemania"=>"Berlin"];
*También se puede crear directamente con []
<source lang=php>
$capitales["España"]="Madrid";
$capitales["Italia"]="Roma"
$capitales["Alemania"]="Berlín";
- Existen muchas funciones asociadas a los arrays
count($array)
- me da el número de elementos.
Tarea
Define un array de 5 ciudades y recorrerlo con un bucle for usando count()
|
<?php
//defino e inicializo el vector
$ciudades[0]="Valencia";
$ciudades[]="Teruel";
$ciudades[]="Burgos";
$ciudades[]="Zaragoza";
$ciudades[]="Huesca";
//Obtengo el número de elementos
$num= count($ciudades);
echo "hay $num ciudades";
for ($n=0; $n<$num; $n++){
echo "ciudad $n es $ciudades[$n]<br>";
}
?>
Ver el contenido de un array
- Podemos usar la función ya conocida var_dump()
- También podemos usar la funciín 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
- el elemento a buscar,
- Retorna 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
- 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
Crea el vector $imagenes.
- La página debe mostrar, aleatoriamente, 3 imágenes
(puedes usar como alternativa la función shuffle ($imagenes)
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
|
<head>
<meta charset="UTF-8"/>
<meta http-equiv="refresh" content="5" url="index.php"/>
<title></title>
</head>
</div>
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
- Superglobales
- 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:
- Superglobales (Algunas principales)
- $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 nos de la información de las variables vistas anteriormente
|
|