Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Creacin de arrays
Asignacin directa
Se asignan valores cuando se necesitan. La primera vez que asignemos un valor, el array se crear en el entorno: Ejemplo Array_Simple.php: <?php $mi_array[1] = 23; // Asignacin directa echo "La array contiene: $mi_array[1] <br>"; unset($mi_array);
?>
De esta forma tenemos un valor asignado al ndice 1 del array. Se puede asignar cualquier ndice en la creacin de este tipo de datos, e incluso no asignar ninguno, de forma que PHP se encarga de asociar un ndice distinto para cada valor. <?php $mi_array[] = 23; $mi_array[] = 54; echo "La array de echo "La array de ?> Otro ejemplo: <?php $ciudad[] = "Pars"; $ciudad[] = "Roma"; $ciudad[] = "Sevilla"; $ciudad[] = "Londres"; echo "Vivo en $ciudad[2]"; // Empieza en el ndice 0 // ndice 1 ndice 0 contiene: $mi_array[0] <br>"; ndice 1 contiene: $mi_array[1] <br>";
?>
ASIX Mdulo 9
array( )
Esta funcin crea un array con los valores que pase como datos de entrada. Los ndices sern aadidos automticamente empezando desde 0. Si no asignan parmetros a array(), la funcin le devolver un array vaco. Ejemplo Funcion_Array.php: <?php $mi_array = array(23,45,76,23,65); echo "La array contiene: $mi_array[2] <br>"; unset($mi_array);
?> El mtodo es similar a: <?php $mi_array[0] = 23; $mi_array[1] = 45; $mi_array[2] = 76; $mi_array[3] = 23; $mi_array[4] = 65; echo "La array contiene: $mi_array[3] <br>"; unset($mi_array);
?> Otro ejemplo: <?php $ciudad = array("Pars", "Roma", "Sevilla", "Londres"); //contamos el nmero de elementos de la tabla $num = count($ciudad); //imprimimos todos los elementos de la tabla echo "<ul type=square>"; for ($i=0; $i < $num; $i++){ echo "<li>El ndice $i es $ciudad[$i]"; } echo "</ul>";
?> La funcin array( ) permite tambin aadir ndices a los valores que se introducen. Para ello se utiliza el operador => de esta forma: <?php $mi_array = array(0 => 23, 1 => 45, 2 => 76); echo $mi_array [0] ."<br>". $mi_array[2]. "<br>"; //Definimos la primera posicin del array como 1 $ciudad = array(1=>"Pars", "Roma", "Sevilla", "Londres"); echo "Ahora la posicin 1 es: $ciudad[1] <br>"; ?>
ASIX Mdulo 9
Tambin es posible aadir ndices que no sean correlativos o ndices alfanumricos, incluso mezclar los dos tipos. Para recuperar cualquier valor se utiliza el ndice dentro de los corchetes: <?php $mi_array = array("cero" => 23, "uno" => 45, 2 => 76); echo $mi_array ["uno"] ."<br>". $mi_array[2]. "<br>"; ?> Las tablas asociativas sern las que a cada elemento se le asigne un valor (key) para acceder a l. Ejemplo: supongamos que tenemos una tabla en la que cada elemento almacena el nmero de visitas a nuestra web por cada da de la semana. Utilizando el mtodo clsico de ndices, cada da de la semana se representara por un entero, 0 para lunes, 1 para martes, etc. $visitas[0] = 200; $visitas[1] = 186; Si usamos las tablas asociativas sera: $visitas["lunes"] = 200; $visitas["martes"] = 186; O bien, $visitas = array("lunes"=>200; "martes"=>186); echo $visitas["lunes"]. "<br>";
ASIX Mdulo 9
Ejemplo Funciones_Tablas.php: <?php $semana = array("lunes", "martes", "viernes", "sbado", "domingo"); echo current($semana). "<br>"; //lunes next($semana); echo pos($semana). "<br>"; //martes end($semana); echo pos($semana). "<br>"; //domingo prev($semana); echo current($semana); //sbado ?> "mircoles", "jueves",
each (array)
La funcin each() devuelve el valor del elemento actual, en este caso, el valor del elemento actual y su clave, y desplaza el puntero al siguiente, cuando llega al final devuelve FALSO. Recupera un array con dos elementos, el primero ser el ndice y el segundo el valor. La funcin list() es ms bien un constructor, lo que hace es asignar valores a una lista de variables. En este caso los valores son extrados de una tabla por la funcin each(). Ejemplo Funcion_Each.php: <?php $visitas = array("lunes"=>200, "martes"=>186, "mircoles"=>190, "jueves"=>175); while (list($clave, $valor) = each($visitas)){ echo "El $clave ha tenido $valor visitas <br>"; } ?>
ASIX Mdulo 9
La construccin anterior recorre el array desde el principio. En el ejemplo se puede ver que foreach() toma el array a recorrer y sus valores los va almacenando en la variable $valor a medida que el bucle se ejecuta. Existe una segunda construccin que permite recuperar el ndice y el valor. <?php $ciudades = array ("Barcelona", "Gerona", "Tarragona", "Lrida"); foreach ($ciudades as $indice => $valor) { echo ("El ndice $indice tiene el valor: $valor<br>") ; } ?> Es un mtodo muy bueno para imprimir los valores de un array que tiene ndices numricos y alfanumricos. <?php $ciudades = array ("Barcelona", "Gerona", "Tarragona", "Lrida"); $ciudades["Espaa"] = "Madrid"; $ciudades["Portugal"] = "Lisboa"; $ciudades["Francia"] = "Paris"; foreach ($ciudades as $indice => $valor) { echo ("El ndice $indice tiene el valor: $valor<br>") ; } ?>
print_r (array)
Muestra todos los elementos de un array, siguiendo la estructura del siguiente esquema: array ([indice1] => elemento1 [indice2] => elemento2 [indice3] => elemento3 [indiceN] => elementoN )
ASIX Mdulo 9
Arrays multidimensionales
PHP soporta el uso de arrays de varias dimensiones. Cada ndice encerrado entre corchetes corresponde a una dimensin distinta. En realidad, cada dimensin es un array que se introduce como valor dentro de la dimensin anterior. As, podr crear un array multidimensional de la siguiente forma: Ejemplo Array_Multi.php: <?php $colores = array("fuertes","suaves"); $colores ["fuertes"] = array ("rojo" => "FF0000", "verde" => "00FF00", "azul" => "0000FF"); $colores ["suaves"] = array ( "rosa" => "FE9ABC", "amarillo" => "FDF189", "malva" => "9A2F68"); echo $colores["fuertes"] ["rojo"]; ?> Para recuperar los valores se utiliza un ndice del primer array (fuertes o suaves) y un ndice de alguno de los dos arrays secundarios. Otra forma de definir el array anterior es: <?php $colores = array( "fuertes" => array ( "rojo" => "FF0000", "verde" => "00FF00", "azul" => "0000FF"), "suaves" => array ( "rosa" => "FE9ABC", "amarillo" => "FDF189", "malva" => "9A2F68")); echo $colores["fuertes"] ["rojo"]; ?> Ejemplo Array_Multi2.php: <?php $calendario[] = array (1, "enero", 31); $calendario[] = array (2, "febrero", 28); $calendario[] = array (3, "marzo", 31); $calendario[] = array (4, "abril", 30); $calendario[] = array (5, "mayo", 31); while (list($clave, $valor ) = each($calendario)){ $cadena = $valor[1]; $cadena .= " es el mes nmero " . $valor[0]; $cadena .= " y tiene " . $valor[2] . " das<br>"; echo $cadena; }
ASIX Mdulo 9
echo "La posicin $indice del array contiene: $valor <br>"; } ?> Mostrar esto por pantalla: enero es el mes nmero 1 y tiene 31 das febrero es el mes nmero 2 y tiene 28 das marzo es el mes nmero 3 y tiene 31 das abril es el mes nmero 4 y tiene 30 das mayo es el mes nmero 5 y tiene 31 das La posicin 0 del array contiene: 1 La posicin 1 del array contiene: enero La posicin 2 del array contiene: 31
Contabilizacin de elementos
count(array)
Cuenta el nmero de elementos que contiene un array. <?php echo "elementos de 1 dimensin " . count ($colores) . "<br>"; // Me devolver que tiene 2 elementos echo "elementos de 2 dimensiones " . count ($colores["fuertes"]); // Me devolver que tiene 3 elementos ?> El ejemplo anterior se basa en la definicin del array de colores inicializado antes. Para contar el nmero de elementos debe ponerse tambin la dimensin. Si el array es de una sola dimensin no hace falta. La funcin sizeof() acta de la misma forma. <?php echo "elementos de 1 dimensin " . sizeof($colores). "<br>"; echo "elementos de 2 dimensiones " sizeof($colores["fuertes"]); ?>
ASIX Mdulo 9
Bsqueda de datos
in_array(elemento, array)
Busca dentro de un array un valor pasado como parmetro, si lo encuentra devuelve el valor true, si no, devuelve false. Toma dos argumentos, el valor a buscar y el array dnde buscar. Ejemplo Funcion_InArray.php: <?php $colores = array ("rojo","verde","amarillo","azul"); if (in_array("rojo", $colores)) { echo "Se ha encontrado el valor rojo"; }else{ echo "No se ha encontrado"; } ?>
array_keys(array, elemento)
Devuelve un array con los ndices del array dado como primer argumento. Opcionalmente, se pueden pedir nicamente aquellos correspondientes a un elemento dado. Ejemplo Funcion_ArrayKeys1.php: El siguiente programa lista los nombres de los actores que aparecen como claves en un array asociativo: <?php $actores=array("Gary Cooper" => array("Solo ante el peligro", "La gran prueba", "El secreto de vivir"), "Cary Grant" => array("La fiera de mi nia", "Arsnico por compasin", "Historias de Filadelfia"), "Marlon Brando" => array("La ley del silencio", "Sayonara", "Viva Zapata!")); $busqueda=array_keys($actores); foreach($busqueda as $indice => $valor){ echo "$valor <br>"; } ?>
ASIX Mdulo 9
Mostrar esto por pantalla: Gary Cooper Cary Grant Marlon Brando Ejemplo Funcion_ArrayKeys2.php: El siguiente programa localiza los ndices asociados a un determinado valor. En concreto, se listan las pelculas almacenadas correspondientes al ao 1940: <?php $peliculas=array("El apartamento"=>1960, "Charada"=>1963, "Doctor Zhivago"=>1965, "El gran dictador"=>1940, "Historias de Filadelfia"=>1940, "El hombre tranquilo"=>1952, "Rebeca"=>1940); $busqueda=array_keys($peliculas, 1940); foreach($busqueda as $indice => $valor){ echo "$valor <br>"; } ?> Mostrar esto por pantalla: El gran dictador Historias de Filadelfia Rebeca
Generacin de arrays
range(inicio, final, aumento)
Se genera un array numrico o de caracteres, comenzando en el valor inicial hasta llegar al valor final dado. Como argumento opcional, se incluye el criterio de paso de un elemento a otro, cuyo valor por defecto es 1. Ejemplo Funcion_Range.php: <?php $mi_array = range(120, 130); foreach ($mi_array as $indice => $valor) { echo ("El ndice $indice tiene el valor: $valor<br>") ; } $caracteres = range("b", "k"); print_r($caracteres); ?>
ASIX Mdulo 9
Mostrar esto por pantalla: El El El El El El El El El El El ndice ndice ndice ndice ndice ndice ndice ndice ndice ndice ndice 0 tiene el valor: 120 1 tiene el valor: 121 2 tiene el valor: 122 3 tiene el valor: 123 4 tiene el valor: 124 5 tiene el valor: 125 6 tiene el valor: 126 7 tiene el valor: 127 8 tiene el valor: 128 9 tiene el valor: 129 10 tiene el valor: 130
Array ( [0] => b [1] => c [2] => d [3] => e [4] => f [5] => g [6] => h [7] => i [8] => j [9] => k )
Combinacin de arrays
array_push(array, elemento1,elemento2,)
Aade al array dado los elementos que se indican como argumentos. La funcin devuelve la nueva dimensin del array. Ejemplo Combinacin_arrays.php: $a=array(10, 15, 20, 25); $b=array(30, 35, 40, 55); array_push($a, $b[0], $b[2]); foreach($a as $valor){ echo "$valor, "; } Mostrar esto por pantalla: 10, 15, 20, 25, 30, 40,
10
ASIX Mdulo 9
$visitas_semana=array_merge($visitas_a, $visitas_b); foreach($visitas_semana as $indice => $valor){ echo "$indice: $valor <br>"; } Mostrar esto por pantalla: lunes: 50 martes: 186 mircoles: 190 jueves: 175 viernes: 195 sbado: 250 domingo: 300
sort(array) y rsort(array)
Estas funciones reordenan los elementos de una matriz, bien en orden ascendente (sort) o descendente (rsort). Los ndices se reasignan segn la nueva disposicin.
array_reverse(array)
Devuelve un nuevo array con los elementos del array original, pero en orden inverso.
11
ASIX Mdulo 9
Borrar arrays
unset(array)
Borra un elemento del array o el array entera. Ejemplo Funcion_Unset.php: <?php $colores = array ("rojo","verde","amarillo","azul","rosa"); echo "El nmero de elementos es: " . count ($colores) . "<br>"; unset ($colores[2]); echo "El nmero de elementos es: " . count ($colores) . "<br>"; ?> Se puede observar que para borrar un elemento, hay que conocer el ndice. El resultado del ejemplo por pantalla es: El nmero de elementos es: 5 El nmero de elementos es: 4
12