INICIO

COMPRENDER Y USAR MATRICES EN PHP

En el ámbito de la programación se usan con mucha frecuencia. Pero si no comprendemos la base del asunto, pueden resultar un tanto complicadas.

¿Qué es una matriz?

Una matriz o array (así lo llama la peña en inglés), es un armario con cajones.

¿Para qué sirve una matriz?

Para guardar cosas.

¿Para qué guardamos cosas en una matriz?

Para tenerlas ordenaditas.

¿Para qué queremos las cosas ordenaditas?

Para usarlas ordenaditamente.

Supón que tienes un montón de calcetines de colores, y tu alta calidad mañanera a la hora de vestirte, te dice que hoy quieres ponerte unos calcetines rojos. Bueno, puedes mirar en la montaña de calcetines y buscar a ver qué hay. Pero también puedes tener un armario con cajones, un cajón para cada color. Pues esto, sería una matriz.

¿Cómo se define una matriz en PHP?

Así:

$matriz=array();

Ahora tenemos un armario, una matriz vacía, para meter lo que queramos.

Meter datos en una matriz

Al definir la matriz, podemos meter datos directamente. Por ejemplo, vamos a crear una matriz con dos elementos.

$matriz=array('Arroz','Carne');

Ahí tenemos una matriz con Arroz y Carne.

Sacar datos de una matriz

Si queremos llamar un elemento de la matriz, para usarlo, lo hacemos conociendo su índice.

Por ejemplo, quiero imprimir en pantalla: “Hoy voy a comer Arroz con Carne“.

echo 'Hoy voy a comer '.$matriz[0].' con '.$matriz[1];

Exacto, el índice empieza a contar desde cero hacia adelante.

¿Qué pasa si he olvidado un dato?

En realidad, yo quiero comer arroz con carne y vino. ¿Tengo que volver a definir la matriz?

No. Esa es la cosa. La matriz es un armario. Tú no reconstruyes un armario cuando vas a meter en él una nueva camiseta, ¿verdad?

Pues en PHP igual. Metemos el elemento y punto.

¿Cómo?

//Nuestra matriz de antes
$matriz=array('Arroz','Carne');

//Metemos el vino
$matriz[]='Vino';

//Nuevo ejemplo
echo 'Hoy voy a comer '.$matriz[0].' con '.$matriz[1].' y '.$matriz[2];

Matrices multidimensionales

Bueno pues eso es lo mismo pero con otro nombre. Una matriz multidimensional no es más que una matriz de matrices. Una matriz dentro de otra dentro de otra dentro de otra. Como si tuvieras un armario, dentro un par cajones, dentro de cada cajón más compartimentos. Pues igual.

Por ejemplo:

//Definimos la matriz armario
$armario=array();

//Definimos las matrices cajones de calcetines y calzoncillos
$cajon_calcetines=array('calcetines verdes','calcetines rojos');
$cajon_calzoncillos=array('clazoncillos largos','calzoncillos cortos');

//Metemos los cajones dentro de la matriz armario
$armario[]=$cajon_calcetines;
$armario[]=$cajon_calzoncillos

Para llamar elementos de una matriz multidimensional, hacemos lo mismo que antes. Pero como son varias matrices pues habrá varios índices. Uno dentro de otro.

//Calcetines verdes del cajón de calcetines del armario.
echo $armario[0][0]

//Calcetines rojos
echo $armario[0][1]

//Calzoncillos cortos
echo $armario[1][1]

¿Puede haber matrices multidimensionales más grandes?

Sí, todo lo grande que quieras.

¿Para qué sirven las matrices?

Los arrays se usan para muchas cosas. Puedes extraer los elementos de una base de datos y tenerlos en una matriz. Puedes tener todos los pixeles de una imagen en una matriz y trabajar con ellos de uno en uno. Puedes tener funciones que te devuelven un conjunto de datos ordenados en una matriz. Puedes usar matrices para ordenar tus propios datos dentro de un programa y trabajar con ellos.