sábado, 14 de mayo de 2011

9. Los arrays III

Ya estamos aquí de nuevo, hoy vamos a explicar otra parte de los arrays, más concretamente los arrays tridimensionales.

ARRAYS TRIDIMENSIONALES
<?
$familia=array(array(array("E", "Eva", 20),
                     array("P", "Pilar", 30),
                     array("C" "Celia", 25)
                     ),
               array(array("D", "David", 32),
                     array("A", "Ana", 18),
                     array("I", "Isaac", 21)

                                                    ),

               array(array("O", "Oscar", 1),
                     array("J", "Jacobo", 4),
                     array("L", "Laura", 3)
                     )
);

?>
Este array sería un array familiar, en el primer bloque donde aparecen Eva, Pilar y Celia serían, hermanos, el siguiente bloque serían primos y el último serían sobrinos. Vamos a ver un ejemplo con la sentencia for de este array:
<?
$familia=array(array(array("E", "Eva", 20),
                     array("P", "Pilar", 30),
                     array("C" "Celia", 25)
                     ),
               array(array("D", "David", 32),
                     array("A", "Ana", 18),
                     array("I", "Isaac", 21)

                     ),

               array(array("O", "Oscar", 1),
                     array("J", "Jacobo", 4),
                     array("L", "Laura", 3)
                     )
              );
 for($parentesco=0;$parentesco<3;$parentesco++)
  {
echo "Parentesco $parentesco<br>";
 for($fila=0;$fila<3;$fila++)
  {
 for($columna=0;$columna<3;$columna++)
  {
echo $familia[$parentesco][$fila][$columna]."<br>";
  }
  }
  }
?>
Y nos aparecerá la siguiente pantalla:
Lo que ha hecho la función for es recorrer todos los elementos del array.

CLASIFICACION DE ARRAYS
Los elementos de los arrays se pueden clasificar de diferentes maneras, bien de forma ascendente, descente, etc.
Para clasificar los elementos de forma ascendente utilizamos sort. Lo vemos mediante un ejemplo:
<?
 $nombres=array("Eva", "Pilar", "Celia");
   echo $nombres[2]."<br>";
  sort ($nombres);
   echo $nombres[2];
?>
Y nos aparece la siguiente pantalla:

El primer nombre es Celia porque ocupa el lugar numero 2, pero luego con sort aparece Pilar. Sort lo que ha hecho ha sido ordenar los nombres de forma ascendente de forma que ahora están ordenados de la siguiente forma: Eva, Celia y Pilar.
Cuando usamos arrays asociativos podemos utilizar variantes de la función sort para clasificar los elementos. Una de estas variantes es la función asort.
<?
$nombres=array("Eva"=>20, "Pilar"=>30, "Celia"=>25);
   asort ($nombres);
?>
La función asort ordenará los elementos del array empezando por las edades. (Seguimos con el ejemplo del array de nombres, los numeros son las edades de cada una).
Si quisieramos clasificar el array por los nombres en vez de por las edades usaríamos la función ksort.
<?
$nombres=array("Eva"=>20, "Pilar"=>30, "Celia"=>25);
   ksort ($nombres);
?>
Hemos visto las funciones sort, asort y ksort para la clasificiación ascendente. Ahora vamos a ver la clasificación a la inversa, es decir, la clasificación descendente, sólo basta añadir una r a cada una de las funciones. Los vemos con una serie de ejemplos:
<?
 $nombres=array("Eva", "Pilar", "Celia");
   echo $nombres[2]."<br>";
  rsort ($nombres);//la clasificación descendente con la función   rsort    echo $nombres[2];
?>
Y nos aparece la siguiente pantalla:

Nos aparece el nombre Celia porque ocupa el lugar numero 2. Si hacemos la clasificación de forma descendente Celia sigue ocupando el 2º lugar porque pasaría a estar clasificado de la siguiente manera: Pilar, Celia, Eva.Las demás funciones que hemos visto asort y ksort para la clasificación de forma ascendente, para la clasificación a la inversa sería de la siguiente forma:
<?
$nombres=array("Eva"=>20, "Pilar"=>30, "Celia"=>25);
  rasort ($nombres);
?>
Rasort lo que hará es ordenar el array empezando por las edades de forma descendente.
<?
$nombres=array("Eva"=>20, "Pilar"=>30, "Celia"=>25);
rksort ($nombres);
?>
Rksort lo que hará es ordenar los nombres de forma ascendente.

Creo que hasta aquí es suficiente el tema de los arrays, podéis practicar vosotros mismos creando vuestros propios scripts con arrays para practicar los temas que hemos dado sobre los arrays. En la próxima entrada publicaré una serie de practicas. De momento hasta pronto!

No hay comentarios:

Publicar un comentario