Está en la página 1de 12

ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor

Las tablas - Arrays


Las tablas o arrays, son muy importantes en PHP, ya que generalmente, las funciones
que devuelven varios valores, como las funciones ligadas a las bases de datos, lo
hacen en forma de tabla.

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

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; // 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>";

//Definimos la primera posición del array como 1


$ciudad = array(1=>"París", "Roma", "Sevilla", "Londres");
echo "Ahora la posición 1 es: $ciudad[1] <br>";
?>

2
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor

También es posible añadir índices que no sean correlativos o índices alfanuméricos,


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 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;

Si usamos las tablas asociativas sería:

$visitas["lunes"] = 200;
$visitas["martes"] = 186;

O bien,

$visitas = array("lunes"=>200; "martes"=>186);


echo $visitas["lunes"]. "<br>";

3
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor

Recorrido de todos los elementos de un array

La manipulación de las tablas asociativas se hace a través de funciones que actúan


sobre un puntero interno que indica la posición. Por defecto, el puntero se sitúa en
el primer elemento añadido en la tabla, hasta que es movido por una función:

 current(array) - devuelve el valor del elemento que indica el


puntero
 pos(array) - realiza la misma función que current
 reset(array) - mueve el puntero al primer elemento de la tabla
 end(array) - mueve el puntero al último elemento de la tabla
 next(array) - mueve el puntero al elemento siguiente
 prev(array) - mueve el puntero al elemento anterior

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

foreach (array as índice => valor)

Recorre todos los elementos de un array.

Ejemplo Array_Foreach.php:

<?php
$ciudades = array ("Barcelona", "Gerona", "Tarragona",
"Lérida");
foreach ($ciudades as $valor) {
echo ("El valor es $valor<br>");
}
?>

La construcción 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 construcción que permite
recuperar el índice y el valor.

<?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)

Muestra todos los elementos de un array, siguiendo la estructura del siguiente


esquema:

array ([indice1] => elemento1 [indice2] => elemento2 [indice3] => elemento3 …
[indiceN] => elementoN )

5
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor

Arrays multidimensionales

PHP soporta el uso de arrays de varias dimensiones.

Cada índice encerrado entre corchetes corresponde a una dimensión distinta. En


realidad, cada dimensión es un array que se introduce como valor dentro de la
dimensión 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 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

echo "La posición $indice del array contiene: $valor <br>";


}
?>

Mostrará esto por pantalla:

enero es el mes número 1 y tiene 31 días


febrero es el mes número 2 y tiene 28 días
marzo es el mes número 3 y tiene 31 días
abril es el mes número 4 y tiene 30 días
mayo es el mes número 5 y tiene 31 días

La posición 0 del array contiene: 1


La posición 1 del array contiene: enero
La posición 2 del array contiene: 31

Funciones de manipulación de arrays

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)

Cuenta el número de elementos que contiene un 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
?>

El ejemplo anterior se basa en la definición del array de colores inicializado antes.


Para contar el número de elementos debe ponerse también la dimensión. Si el array
es de una sola dimensión no hace falta. La función sizeof() actúa de la misma forma.

<?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)

Busca dentro de un array un valor pasado como parámetro, si lo encuentra


devuelve el valor true, si no, devuelve false. Toma dos argumentos, el valor a buscar y
el array dónde 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 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

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 películas almacenadas correspondientes al año 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

Generación de arrays
range(inicio, final, aumento)

Se genera un array numérico 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);
?>

9
ASIX – Módulo 9 UF 1: Lenguaje de guión de servidor

Mostrará esto por pantalla:

El índice 0 tiene el valor: 120


El índice 1 tiene el valor: 121
El índice 2 tiene el valor: 122
El índice 3 tiene el valor: 123
El índice 4 tiene el valor: 124
El índice 5 tiene el valor: 125
El índice 6 tiene el valor: 126
El índice 7 tiene el valor: 127
El índice 8 tiene el valor: 128
El índice 9 tiene el valor: 129
El índice 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 )

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:

$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 – Módulo 9 UF 1: Lenguaje de guión de servidor

array_merge(array1, array2, array3 ,…)

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_a = array("lunes"=>200, "martes"=>186,


"miércoles"=>190, "jueves"=>175);
$visitas_b = array("viernes"=>195, "sábado"=>250,
"domingo"=>300, "lunes"=>50);

$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
miércoles: 190
jueves: 175
viernes: 195
sábado: 250
domingo: 300

Ordenación de los elementos de un array


asort(array) y arsort(array)

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)

Borra un elemento del array o el array entera.

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:

El número de elementos es: 5


El número de elementos es: 4

Intercambio de valores en arrays


array_flip(array)

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

También podría gustarte