Definición
Un array es una variable en la que podemos guardar varios datos o variables agrupados a la vez. Estos forman una lista, la cual tiene un único nombre. Por ejemplo podemos guardar en un array llamado $semana los días de la semana, o en $meseslos nombres de los meses del año, o en $clientes los nombres de los clientes habituales de un negocio.
En otros manuales podemos encontrarlos con el nombre de "vectores", "listas", "matrices", "arreglos" o "tablas". Nosotros hemos preferido llamarlos por su nombre en inglés, que es el que se usa para crearlos, "arrays". Conservamos así su nombre original, para no confundirlos con otro tipo de estructuras.
Si has visto el curso de javascript, sin duda, ya sabrás lo que son los arrays, aunque en PHP siguen la misma estructura, su forma es un poco diferente.
Una diferencia con javascript es que en PHP los arrays pueden ser indexados o asociativos, mientras que en javascript todos son indexados. Empezaremos por estos últimos.
definir un array
La forma más simple de definir un array es mediante la instrucción array(). Dentro del paréntesis escribimos los valores o variables que contiene el array, separados por comas:
$temporadas=array("primavera", "verano", "otoño", "invierno");
Dentro del array podemos poner todo tipo de datos, tanto cadenas de texto, como números enteros o decimales, o booleanos, o poner variables que contengan esos datos, El siguiente array mezcla todo tipo de datos:
$miarray=array("Juan",,32,17.5,true);
Leer un array
Los arrays anteriores son arrays indexados, es decir, a cada elemento del array le corresponde un número, el cual se utilizará para poder leerlo. Se empieza a contar desde el número 0, por lo que el primer elemento del array será el número 0. Al último elemento de un array de n elementos le corresponderá el número n-1. Es decir en el array $temporadas del ejemplo anterior, al elemento "primavera" le corresponde el número 0, a "verano" le corresponde el 1, a "otoño" el 2 y a "invierno" el 3.
para leer cada elemento usaremos el siguiente código:$nombreArray[num_elemento]. Así para leer los elementos del array anterior escribiremos:
echo "$temporada[0], $temporada[1], $temporada[2], $temporada[3].";
Fíjate que el número de elemento debe ponerse entre corchetes [ ], mientras que en la definición mediante la palabra clave "array" hemos usado paréntesis ( ).
Si haces la prueba de escribir el array anterior en una página, y sacarlo luego en pantalla, el resultado será el siguiente:
primavera, verano, otoño, invierno.
más adelante veremos otros métodos más eficaces para mostrar todos los elementos de un array, así como para buscar algún elemento en concreto y otras operaciones con arrays.
Definir un array por sus elementos
También podemos definir un array definiendo directamente sus elementos, por ejemplo si escribimos:
$turnos[0]="mañana";
$turnos[1]="tarde";
$turnos[2]="noche";
$turnos[1]="tarde";
$turnos[2]="noche";
Es lo mismo que si hubieramos escrito:
$turnos= array("mañana","tarde",noche");
Esta forma de definir arrays simplemente definiendo sus elementos plantea algunos problemas: por ejemplo, ¿qué pasa si al definir un elemento no hemos definido los anteriores?. Pues simplemente que los anteriores no existen. el número de elementos, es el que tiene, sin embargo para leer el elemento deberemos usar el número que le hemos dado, y no el que le correspondería por su orden.
Por ejemplo, si escribimos :
$a[5]="hola";
Creamos un array de un solo elemento, sin embargo para leerlo debemos escribirecho "$a[5]";, con el número 5, aunque sea el primer elemento del array.
Redefinir elementos
Para darle otro valor a un elemento de un array basta con definirlo de nuevo, tal como hemos hecho en la sección anterior. así si en el array $temporada visto anteriormente queremos poner el primer elemento en letras mayúsculas, lo redefineremos de la siguiente manera:
$temporada[0]="PRIMAVERA";
Después de hacer el cambio, lo volvemos a sacar en pantalla mediante la sentencia:
echo "$temporada[0], $temporada[1], $temporada[2], $temporada[3].";
y veremos el siguente resultado
PRIMAVERA, verano, otoño, invierno.
El valor del primer elemento de este array ha cambiado.
Contar los elementos de un array
Para contar los elementos que contiene un array utilizaremos la instruccióncount($miarray), donde $miarray es la variable que contiene el array. Para contar los elementos del array $temporada visto anteriormente utilizaremos el siguiente código:
$num=count($temporada);
echo "El array \$temporada tiene $num elementos.";
echo "El array \$temporada tiene $num elementos.";
Al aplicar el código anterior veremos el siguiente resultado:
el array $temporada tiene 4 elementos.
Podemos usar también la funcion sizeof($array) para contar los elementos de un array. La forma de usarla es idéntica a la función count(), y el resultado es el mismo.