TUTORIAL PHP & MYSQL – 9. Arrays multidimensionales
Hola, después de un largo parón en el que no he podido escribir, bienvenidos al tutorial número 9, esta vez hablamos sobre arrays multidimensionales como ya dije en el tutorial anterior (se abrirá en una pestaña nueva). Y os dejo también la primera parte de este largo tutorial de arrays de PHP que estamos haciendo en Geeky Theory.
Como creo que el tema de los arrays multidimensionales no es sencillo, este tutorial no será demasiado extenso. Sin embargo nos centraremos más en los ejemplos y en que se entienda bien lo básico de este tipo de Arrays.
¿QUÉ SON LOS ARRAYS MULTIDIMENSIONALES?
Lo primero y lo más importante es saber qué son. Dicho de forma sencilla y clara, los arrays multidimensionales son arrays dentro de arrays; ya que los valores que hay dentro de un array (valga la redundancia) pueden ser de cualquier tipo de datos: string, enteros, booleanos, flotantes... Pero también el tipo Array, lo que hace que sea posible que un valor sea de ese tipo y contenga a su vez más valores en su interior. De esta manera, para acceder a un valor que esté dentro de un Array contenido en otro Array hará falta darle dos "coordenadas", poniéndolas entre corchetes (esto será explicado en profundidad más adelante). // <![CDATA[ google_ad_client = "ca-pub-6739991881181660"; /* Bloque entradas */ google_ad_slot = "5503460243"; google_ad_width = 468; google_ad_height = 60; // ]]>// <![CDATA[ // ]]>
TIPOS DE ARRAYS MULTIDIMENSIONALES
Este es quizá un apartado trivial y puede que redundante, pero no está de más saber el nombre de los arrays multidimensionales según los datos que guarden. Realmente los arrays normales (los de los tutoriales siete y ocho) se pueden llamar unidimensionales, ya que guardan la información en una sola dimensión y solo es necesaria una coordenada para imprimir en pantalla un valor (solo hay que especificar un valor entre corchetes). Sin embargo, si se guardan en dos dimensiones (en un array dentro de otro array), los llamaremos bidimensionales, al ser necesarias dos coordenadas escritas entre corchetes para acceder a los mismos. Si hacen falta tres coordenadas: tridimensionales y así sucesivamente (aunque no creo que tengáis que usar de más).
SINTAXIS
Por último hablaremos sobre la sintaxis, el apartado más importante y que realmente nos ayudará (si no sabemos cómo escribir algo, aunque sepamos muy bien lo que es, no lo podremos usar). Ya he dicho en apartados anteriores que para acceder a un valor contenido dentro de dos Arrays (Array dentro de Array), se necesario darle dos "coordenadas". Veamos cómo se hace esto poniendo un ejemplo de móviles: <?php $movil = array( 'LG' => array('L3', 'L5', 'L7', 'L9'), 'Samsung' => array('S2', 'S3', 'Note', 'Mini'), 'Apple' => array('Iphone 4S', 'Iphone 5'), 'Nokia' => array('Lumia 520') ); ?> Dentro del primer array están contenidas las marcas de móviles (LG, Samsung, Apple, Nokia...) y dentro de cada valor de ese primer Array están los modelos de cada marca dentro de otro array. Creo que así puesto se entiende perfectamente cómo hay que escribirlo. Es como si a cada valor del primer array ($movil), le asignas por medio de => otra lista de valores; que se podría alargar indefinidamente, ya que para cada uno de éstos puedes poner más. Realmente los arrays interiores son los valores del primer array y lo que está antes de las flechas "=>" son los índices de esos valores, lo que usaremos para imprimir en pantalla con la función "echo". La sintaxis convencional (la más entendible), por lo tanto, sería: $arraymulti = array('indice1'=>array('valor1', 'valor2', 'valor3',....,'valorN'), 'indice2'=>array(...)); (Nótese que dentro de los arrays interiores también puedes poner 'indice' => 'valor', si no se pone, el índice es igual que en uno normal, empezando por cero y en progresión aritmética) Que si lo comparamos con la estructura normal de un array unidimensional nos damos cuenta de que es muy similar, solo hemos sustituido cada valor por un conjunto de ellos: $arrayuni = array('indice1' => 'valor1', 'indice2' => 'valor2'); IMPRIMIR EN PANTALLA Habiéndolos entendido, imprimir los valores de arrays multidimensionales en pantalla es muy sencillo. Tan solo tendremos que escribir la función "echo" con el nombre del array (igual que siempre) y seguido de los índices entre corchetes para cada valor. Con el ejemplo de antes: <?php $movil = array( 'LG' => array('L3', 'L5', 'L7', 'L9'), 'Samsung' => array('S2', 'S3', 'Note', 'Mini'), 'Apple' => array('Iphone 4S', 'Iphone 5'), 'Nokia' => array('Lumia 520') ); ?> Si hacemos: echo $movil Saldrá en pantalla: "L3", al haber puesto primero entre corchetes el índice dentro del primer array ('LG') y después el número cero, que es el índice de un valor dentro del array con índice 'LG'. Si hacemos: echo $movil ¿Qué nos saldrá? Pues efectivamente, Iphone 5. Como veis esto es muy sencillo y creo que fácil de entender. No obstante, si hay algo que no entiendes, te recomiendo que te pases por el foro de GeekyTheory donde te podremos ayudar con todo lo que necesites. Gracias por haber leído hasta aquí. Me voy recomendándote el último tip de programación web sobre crear tablas html a partir de mysql.