jueves, 1 de marzo de 2012

Arrays (Tablas) Parte 1



Los arrays son variables que permiten almacenar varios elementos, estructurándolos como si fuesen una tabla, de ahí a que también se les llamen tablas.

Imaginemos que tenemos una variable llamada $pais, y que a esa variable queremos incluirle varios nombres de países.

Lo declararíamos de la siguiente forma:

<?php
$pais[0] = "España";
$pais[1] = "Francia";
$pais[2] = "Portugal";
$pais[3] = "Alemania";
$pais[4] = "Polonia";
echo "Yo vivo en " .$pais[0];
?>

Esto imprimiría "Yo vivo en España".

Al número entre corchetes [] se le llama índice. Si cambiamos el índice en el echo, nos imprimirá el elemento de ese índice.

Se puede declarar el array de forma más rápida, de la siguiente forma:

<?php
$pais = array("España", "Francia", "Portugal", "Alemania", "Polonia");
echo "Yo vivo en " .$pais[0];
?>

Nos imprimiría el mismo resultado. Solo hay que contar los índices, teniendo en cuenta que el primer índice será el 0.

Si queremos que el índice empiece por otro número, deberemos declararlo:

$pais = array(1=> "España", "Francia", "Portugal", "Alemania", "Polonia");


A los elementos de array se les pueden asignan otros valores llamados claves (keys). A estos arrays se les llama Tablas Asociativas.

Imaginemos que dentro del array países, que contiene varios elementos (países), queremos además asociar el idioma que se habla en cada uno de ellos.

Podemos hacerlo de las dos formas al igual que antes:

<?php
$pais["Espana"] = "Español";
$pais["Francia"] = "Frances";
$pais["Portugal"] = "Portugues";
$pais["Alemania"] = "Aleman";
$pais["Polonia"] = "Polaco";
}
?>

El problema ahora sería recorrer la tabla para sacar el valor que nos interesa, ya que antes lo teniamos fácil al apuntar a su índice. Pero ahora el índice a cambiado al nombre del elemento.

Necesitamos recurrir a un bucle para que recorra el array.

Por defecto, el puntero interno se sitúa sobre el primer elemento de la tabla.

Haremos uso de las siguientes funciones:

- current para devolver el valor del elemento donde se encuentra el puntero.
- reset  para mover el puntero al primer elemento de la tabla.
- end para mover el puntero al último elemento de la tabla.
- next para mover el puntero al siguiente elemento de la tabla.
- prev para mover el puntero al elemento anterior de la table.
- count para que nos diga el número de elementos de la tabla.

Para recorrer la tabla utilizaremos la función each().
Volvemos al ejemplo anterior de los países:

<?php
$pais = array ("Espana"=>"Español", "Francia"=>"Frances", "Portugal"=>"Portugues", "Alemania"=>"Aleman", "Polonia"=>"Polaco");
reset($pais); //situamos el puntero en el primer elemento.
while (list($clave, $valor) = each($pais)) {
echo "En el pais " . $clave . " se habla " . $valor . "<BR>";
}
?>

Esto imprimirá:

En el pais Espana se habla Español
En el pais Francia se habla Frances
En el pais Portugal se habla Portugues
En el pais Alemania se habla Aleman
En el pais Polonia se habla Polaco

Repasemos el código:

Declaramos el array $pais, con una lista de elementos (países) con unos valores asociados (idiomas).

Colocamos el puntero en el primer elemento de la tabla con reset.

Creamos un bucle While en el que listamos (list) las claves (paises) y valores (idiomas) de cada elemento de la tabla, y con each extraemos el valor del elemento actual y pasamos al siguiente, hasta que llega al final.

En la 2ª parte veremos los Arrays Multidimensionales.






No hay comentarios:

Publicar un comentario