|
Un tipo de variable que ya hemos descrito pero
puede ser relativamente complicado a asimilar con
respecto a la mayoría son los arrays. Un
array es una variable que está compuesta
de varios elementos cada uno de ellos catalogado
dentro de ella misma por medio de una clave.
Veremos en este ejemplo un array llamado sentido
que contiene los distintos sentidos del ser humano:
$sentido[1]="ver";
$sentido[2]="tocar";
$sentido[3]="oir";
$sentido[4]="gustar";
$sentido[5]="oler"; |
|
En este caso este array cataloga sus elementos, comunmente
llamados valores, por números. Los números
del 1 al 5 son por lo tanto las claves y los sentidos
son los valores asociados. Nada nos impide emplear
nombres (cadenas) para clasificarlos. Lo único
que deberemos hacer es entrecomillarlos:
<?
$moneda["espana"]="Peseta";
$moneda["francia"]="Franco";
$moneda["usa"]="Dolar";
?> |
|
|
Otra forma de definir idénticamente este mismo
array y que nos puede ayudar para la creación
de arrays más complejos es la siguiente sintaxis:
<?
$moneda=array("espana"=>
"Peseta","francia"
=> "Franco","usa"
=> "Dolar");
?> |
|
|
Una forma muy practica de almacenar datos es mediante
la creación de arrays multidimensionales
(tablas). Pongamos el ejemplo siguiente: Queremos
almacenar dentro de una misma tabla el nombre, moneda
y lengua hablada en cada país. Para hacerlo
podemos emplear un array llamado país que
vendrá definido por estas tres características
(claves). Para crearlo, deberíamos escribir
una expresión del mismo tipo que la vista
anteriormente en la que meteremos una array dentro
del otro. Este proceso de incluir una instruccion
dentro de otra se llama anidar y es muy corriente
en programación:
<?
$pais=array
(
"espana" =>array
(
"nombre"=>"España",
"lengua"=>"Castellano",
"moneda"=>"Peseta"
),
"francia" =>array
(
"nombre"=>"Francia",
"lengua"=>"Francés",
"moneda"=>"Franco"
)
);
echo $pais["espana"]["moneda"]
//Saca en pantalla: "Peseta"
?> |
|
Ejecutar
este Script |
Antes de entrar en el detalle de este pequeño
script, comentemos algunos puntos referentes a la
sintaxis. Como puede verse, en esta secuencia de script,
no hemos introducido punto y coma ";" al
final de cada línea. Esto es simplemente debido
a que lo que hemos escrito puede ser considerado como
una sola instrucción. En realidad, somos nosotros
quienes decidimos cortarla en varias líneas
para, así, facilitar su lectura. La verdadera
instrucción acabaría una vez definido
completamente el array y es precisamente ahí
donde hemos colocado el único punto y coma.
Por otra parte, podes observar cómo hemos jugado
con el tabulador para separar unas líneas más
que otras del principio. Esto también lo hacemos
por cuestiones de claridad, ya que nos permite ver
qué partes del código están incluidas
dentro de otras. Es importante acostumbrarse a escribir
de esta forma del mismo modo que a introducir los
comentarios ya que la claridad de los scripts es fundamental
a la hora de depurarlos. Un poco de esfuerzo a la
hora de crearlos puede ahorrarnos muchas horas a la
hora de corregirlos o modificarlos meses más
tarde.
Pasando ya al comentario del programa, como se
puede ver, éste nos permite almacenar tablas
y, a partir de una simple petición, visualizarlas
un determinado valor en pantalla.
Lo que es interesante es que la utilidad de los
arrays no acaba aquí, sino que también
podemos utilizar toda una serie de funciones creadas
para ordenarlos por orden alfabético directo
o inverso, por claves, contar el numero de elementos
que componen el array además de poder movernos
por dentro de él hacia delante o atrás.
Muchas son las funciones propuestas por PHP para
el tratamiento de arrays, no vamos a entrar aquí
en una descripción de las mismas. Sólo
incluiremos esta pequeña tabla que puede
ser complementada, si necesario, con la documentación
que ya hemos mencionado.
Función |
Descripción |
array_values
(mi_array) |
Lista
los valores contenidos en
mi_array |
|
asort(mi_array)
y arsort(mi_array) |
Ordena
por orden alfabético
directo o inverso en función
de los valores |
|
count(mi_array) |
Nos
da el numero de elementos
de nuestro array |
|
ksort(mi_array)
y krsort(mi_array) |
Ordena
por orden alfabético
directo o inverso en función
de las claves |
|
list ($variable1,
$variable2...)=mi_array |
Asigna
cada una variable a cada uno
de los valores del array |
|
next(mi_array),
prev(mi_array), reset(mi_array) y
end(mi_array) |
Nos
permiten movernos por dentro
del array con un puntero hacia
delante, atras y al principio
y al final. |
|
each(mi_array) |
Nos
da el valor y la clave del
elemento en el que nos encontramos
y mueve al puntero al siguiente
elemento. |
|
|
De gran utilidad es también el bucle foreach
que recorre de forma secuencial el array de principio
a fin.
|