Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PHP Arrays
PHP Arrays
Un array es una colección de valores con un único nombre. Para acceder a los
distintos valores de la variable se utiliza un índice numérico o alfanumérico.
Creación de arrays
Asignación directa
Ejemplo Array_Simple.php:
<?php
$mi_array[1] = 23; // Asignación 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 creación 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; // Empieza en el índice 0
$mi_array[] = 54; // índice 1
echo "La array de índice 0 contiene: $mi_array[0] <br>";
echo "La array de índice 1 contiene: $mi_array[1] <br>";
?>
Otro ejemplo:
<?php
$ciudad[] = "París";
$ciudad[] = "Roma";
$ciudad[] = "Sevilla";
$ciudad[] = "Londres";
echo "Vivo en $ciudad[2]";
?>
1
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor
array( )
Esta función crea un array con los valores que pase como datos de entrada. Los
índices serán añadidos automáticamente empezando desde 0. Si no asignan
parámetros a array(), la función le devolverá un array vacío.
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 método 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("París", "Roma", "Sevilla", "Londres");
//contamos el número 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 función array( ) permite también añadir í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>";
2
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor
<?php
$mi_array = array("cero" => 23, "uno" => 45, 2 => 76);
echo $mi_array ["uno"] ."<br>". $mi_array[2]. "<br>";
?>
Las tablas asociativas serán 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
número de visitas a nuestra web por cada día de la semana. Utilizando el método
clásico de índices, cada día de la semana se representaría por un entero, 0 para
lunes, 1 para martes, etc.
$visitas[0] = 200;
$visitas[1] = 186;
$visitas["lunes"] = 200;
$visitas["martes"] = 186;
O bien,
3
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor
Ejemplo Funciones_Tablas.php:
<?php
$semana = array("lunes", "martes", "miércoles", "jueves",
"viernes", "sábado", "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); //sábado
?>
each (array)
La función 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 función list() es más bien un constructor, lo que hace es asignar valores a una lista
de variables. En este caso los valores son extraídos de una tabla por la función each().
Ejemplo Funcion_Each.php:
<?php
$visitas = array("lunes"=>200, "martes"=>186, "miércoles"=>190,
"jueves"=>175);
while (list($clave, $valor) = each($visitas)){
echo "El $clave ha tenido $valor visitas <br>";
}
?>
4
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor
Ejemplo Array_Foreach.php:
<?php
$ciudades = array ("Barcelona", "Gerona", "Tarragona",
"Lérida");
foreach ($ciudades as $valor) {
echo ("El valor es $valor<br>");
}
?>
<?php
$ciudades = array ("Barcelona", "Gerona", "Tarragona",
"Lérida");
foreach ($ciudades as $indice => $valor) {
echo ("El índice $indice tiene el valor: $valor<br>") ;
}
?>
Es un método muy bueno para imprimir los valores de un array que tiene índices
numéricos y alfanuméricos.
<?php
$ciudades = array ("Barcelona", "Gerona", "Tarragona",
"Lérida");
$ciudades["España"] = "Madrid";
$ciudades["Portugal"] = "Lisboa";
$ciudades["Francia"] = "Paris";
foreach ($ciudades as $indice => $valor) {
echo ("El índice $indice tiene el valor: $valor<br>") ;
}
?>
print_r (array)
array ([indice1] => elemento1 [indice2] => elemento2 [indice3] => elemento3 …
[indiceN] => elementoN )
5
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor
Arrays multidimensionales
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.
<?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 número " . $valor[0];
$cadena .= " y tiene " . $valor[2] . " días<br>";
echo $cadena;
}
echo "<br>";
foreach($calendario[0] as $indice => $valor){
6
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor
Existen numerosas funciones que son capaces de averiguar datos de los arrays, tales
como el tamaño, si un valor forma parte del conjunto o si un determinado índice está
registrado.
Contabilización de elementos
count(array)
<?php
echo "elementos de 1 dimensión " . count ($colores) . "<br>";
// Me devolverá que tiene 2 elementos
echo "elementos de 2 dimensiones " . count
($colores["fuertes"]);
// Me devolverá que tiene 3 elementos
?>
<?php
echo "elementos de 1 dimensión " . sizeof($colores). "<br>";
echo "elementos de 2 dimensiones " .
sizeof($colores["fuertes"]);
?>
7
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor
Búsqueda de datos
in_array(elemento, array)
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 niña",
"Arsénico por compasión", "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>";
}
?>
8
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor
Gary Cooper
Cary Grant
Marlon Brando
Ejemplo Funcion_ArrayKeys2.php:
<?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>";
}
?>
El gran dictador
Historias de Filadelfia
Rebeca
Generación de arrays
range(inicio, final, aumento)
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);
?>
9
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor
Array ( [0] => b [1] => c [2] => d [3] => e [4] => f [5] => g
[6] => h [7] => i [8] => j [9] => k )
Combinación de arrays
array_push(array, elemento1,elemento2,…)
Añade al array dado los elementos que se indican como argumentos. La función
devuelve la nueva dimensión del array.
Ejemplo Combinación_arrays.php:
10
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor
Devuelve un nuevo array formado uniendo todos los elementos de los arrays
pasados como argumentos. Si dos o más elementos tienen el mismo índice
alfabético en varios de los arrays iniciales, se incluye en la unión el último de ellos.
Ejemplo Combinación_arrays.php:
$visitas_semana=array_merge($visitas_a, $visitas_b);
foreach($visitas_semana as $indice => $valor){
echo "$indice: $valor <br>";
}
lunes: 50
martes: 186
miércoles: 190
jueves: 175
viernes: 195
sábado: 250
domingo: 300
Estas funciones permiten ordenar los elementos de una lista dada, bien en orden
ascendente (asort) o descendente (arsort). Su particularidad es que cada elemento
conserva su índice original.
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 según la nueva disposición.
array_reverse(array)
Devuelve un nuevo array con los elementos del array original, pero en orden inverso.
11
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor
Borrar arrays
unset(array)
Ejemplo Funcion_Unset.php:
<?php
$colores = array ("rojo","verde","amarillo","azul","rosa");
echo "El número de elementos es: " . count ($colores) . "<br>";
unset ($colores[2]);
echo "El número 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:
Intercambia los valores de índices y datos, es decir, los índices serán guardados como
datos y los valores serán sus nuevos índices.
Ejemplo Funcion_Array_Flip.php:
<?php
echo "<h1>Otro ejemplo</h1>";
$numero = array("uno" => 1,"dos" => 2, "tres" => 3,"cuatro" =>
4);
echo "<h2>Números intercambiados</h2>";
$nueva=array_flip($numero);
foreach ($nueva as $indice => $valor){
echo "$indice: $valor <br>";
}
?>
El navegador muestra:
Números intercambiados
1: uno
2: dos
3: tres
4: cuatro
12