Arrays en PHP: El array multidimensional

Otra caracteristica de los arrays en PHP es la posbilidad de crear arrays de más de una dimension. De hecho, pueden tener tantas dimensiones como quieras pero, es raro que un aplicación use más de 3. Para conseguir un array multidimensional basta con incluir un array entero como parte de otro y así consecutivamente.

Voy a mostrar un ejemplo basándonos en una papelería. Una papelería puede tener diferentes productos y cada uno tiene unos detalles. Para este caso voy a emplear arrays asociativos para que sea más sencillo comprender cómo funciona pero, se pueden emplear índices numéricos sin problema.

Hay un array llamado productos y a su vez tiene 2 elementos, boligrafo y pegamento, cada uno contiene otro array con sus respectivas parejas clave-valor.

Si fuese necesario, se podría haber añadido más arrays dentro de los subarrays.  Por ejemplo, en el boligrafo podría haber un índice «colores» y que este contenga un array con todos los colores.

La siguiente parte del código es el bucle foreach. Como el array tiene 2 niveles, será preciso recorrerlo 2 veces. Una por cada producto, donde ya imprimo que producto es, y otra por cada detalle del mismo. En este último al emplear «as» me ahorro escribir a qué campo pertenece cada valor.

array multidimensional resultado

Resultado de recorrer el array multidimensional

También puedes acceder directamente a un elemento en ocncreto del array usando los corchetes.

Array multidimensional con índices numéricos

Ahora voy a exponer un ejemplo usando índices numéricos. Un array multidimensional funciona mediante filas y columnas. Por ello voy a crear un array que contiene 3 arrays en su interior, cada uno representa una fila y cada índice de ese array representa una columna.

El array consistirá en un listado que almacena nombres alfabéticamente. En la primera fila estarán los nombres que empiezan por A, en la segunda por B y así consecutivamente

Al ser de 2 niveles, hay que recorrerlo 2 veces. El primer foreach es por cada fila y el segundo imprime cada elemento de esa fila. También se puede acceder directamente a un valor. Si quisiéramos acceder al primer nombre que empiece por B.

Y hasta aquí lo referido a array multidimensional, espero que os haya ayudado. A seguir picando 🙂