Arreglos en PHP
Los arreglos son una herramienta del lenguaje que permite agrupar datos en una sola variable en forma
de lista, esto con el fin de organizar, ordenar, buscar y filtrar elementos, permitiendo una
manipulación de datos más fácil y eficiente
En un arreglo se pueden ingresar datos de cualquier tipo, incluso otros arreglos, lo que permite
crear estructuras mas complejas.
Arreglos simples
Empezar a crear arreglos es muy fácil, solo debemos definir una variable y asignarle como valor un
par de corchetes, uno de apertura y uno de cierre, lo cual le indica al lenguaje que queremos
generar un arreglo vació.
$data = [];
Para añadir datos a nuestro arreglo se usa el formato $data[] = ‘data’;, para ejemplificarlo añadamos
los nombres de los colores a un arreglo llamado $colors:
$colors = [];
$colors[] = 'rojo';
$colors[] = 'verde';
$colors[] = 'azul';
¿Y como recuperamos datos de un arreglo?, en un arreglo la información se almacena en forma de lista,
pero por defecto la lista es numerada y empieza a contar por el numero cero, por lo que la forma de
acceder a nuestra información sería la siguiente:
echo $colors[0]; // rojo
echo $colors[1]; // verde
echo $colors[2]; // azul
La forma de acceder a los datos de un arreglo es mediante el nombre de la variable seguido de la
posición del elemento, la posición se indica entre corchetes.
¿Como se cambia el valor de un elemento dentro de un arreglo?
Tal como accedemos a un arreglo podemos modificarlo, solo necesitamos escribir el nombre de la
variable que contiene el arreglo e indicar la posición del elemento que necesitamos modificar,
ejemplo:
$colors[0] = 'morado';
echo $colors[0]; // morado
A la posición de un elemento dentro de un arreglo se le conoce como llave ó clave por su nombre en
ingles «Key» y no solo puede contener números, puede contener cualquier carácter alfanumérico.
Aún trabajando solo con claves numéricas no es obligatorio comenzar desde el cero, ni siquiera es
necesario asignar números consecutivos e incluso se pueden ingresar valores negativos.
Veamos un ejemplo de asignación manual de claves:
$colors = [];
$colors[1] = 'rojo';
$colors[2] = 'verde';
$colors[4] = 'azul';
echo $colors[1]; // rojo
echo $colors[2]; // verde
echo $colors[4]; // azul
En este ejemplo definimos un arreglo vació y a continuación asignamos los valores ingresando las
claves deseadas.
También podemos definir una variable como arreglo y al mismo tiempo asignarle los valores, todo en la
misma estructura, para ello entre los corchetes característicos de un arreglo se agregan los valores
a asignar, separados por coma, por ejemplo:
$fruits = ['peras', 'manzanas', 'uvas']; // Caja de frutas
echo $fruits[0]; // peras
echo $fruits[1]; // manzanas
Gracias a esta forma abreviada y directa de definir arreglos es que se suele decir que los arreglos
son como cajas que contienen cosas, donde los corchetes son las paredes que delimitan esas cajas.
Arreglos asociativos
Cuando usamos claves alfanuméricas ó usamos números pero de forma no consecutiva ó usamos números de
forma consecutiva pero sin empezar por el número cero la estructura recibe el nombre de arreglo
asociativo.
Veamos un ejemplo de arreglo asociativo con claves alfanuméricas:
$days = [];
$days['dom'] = 'domingo';
$days['lun'] = 'lunes';
$days['mar'] = 'martes';
$days['mie'] = 'miercoles';
$days['jue'] = 'jueves';
$days['vie'] = 'viernes';
$days['sab'] = 'sabado';
echo $days['lun']; // lunes
echo $days['dom']; // domingo
En este ejemplo vemos una forma de organizar los nombres de los días en una sola variable y acceder a
ellos mediante los nombres abreviados de los días.
Ahora veamos ese mismo ejemplo pero en la forma abreviada de definir arreglos.
$days = [
'dom' => 'domingo',
'lun' => 'lunes',
'mar' => 'martes',
'mie' => 'miércoles',
'jue' => 'jueves',
'vie' => 'viernes',
'sab' => 'sábado',
];
echo $days['lun']; // lunes
echo $days['dom']; // domingo
Aquí cambia un poco el formato, ya que ahora debemos introducir el operador «=>» (flecha doble) ya
que al definir un arreglo de forma directa con claves personalizadas es necesario indicar cual es la
clave y cual es el valor del elemento.
Lo que esta a la izquierda del operador «flecha doble» siempre representa la clave del elemento
dentro del arreglo y del lado derecho siempre se indica el valor, y aquí se hace evidente que los
arreglos en php son una colección de claves y valores.
A este tipo de estructuras tipo clave => valor también se les conoce como diccionarios ya que de un
lado tenemos una palabra y del otro lado tenemos la definición (palabra => definición) aunque
también se les conoce como mapas ya que sabiendo la dirección (la clave) se puede llegar a un lugar
deseado (el valor) (dirección => lugar).
Hasta aquí hemos visto que un arreglo asociativo (claves alfanuméricas) se define y se comporta muy
parecido a un arreglo simple (claves numéricas consecutivas empezando por el cero) y ambos permiten
agrupar datos en forma de lista, ahora toca ver como se pueden combinar para crear estructuras mas
complejas.
Arreglos multi-dimensionales
Podemos asignar arreglos como valores dentro de otros arreglos, de esta forma se pueden asignar aún
mas datos a una única variable, pero de esta forma los datos son menos una lista y mas como una
tabla, la cual contiene celdas con muchos datos que a su vez pueden contener a otras tablas.
Empecemos con un ejemplo simple, imagina que queremos hacer una pequeña app para ayudarnos a hacer
las compras, empecemos creando una estructura para gestionar nuestra lista de compras:
$products = [
[
'name' => 'leche', 'found' => '✔️',
],
[
'name' => 'manzanas', 'found' => '✔️',
],
];
Tenemos un arreglo de productos que contiene un arreglo con el nombre del producto y un dato que nos
sirva como check ✔️ de que efectivamente encontramos el producto al ir a la tienda.
Si queremos imprimir el nombre del primer producto de la lista por comprar tendríamos que hacer lo
siguiente:
echo $products[0]['name']; // leche
Y al haber comprado el ítem ahora tendríamos que cambiar el valor de found por un true:
$products[0]['found'] = '✔️';
Y si por el camino se nos ocurre añadir un producto mas a la lista el código a usar sería el
siguiente:
$products[] = ['name' => 'azúcar', 'found' => '✖️'];
¿Y si por el camino preferimos olvidarnos de las manzanas y en su lugar compramos peras? pues ahora
tendríamos que usar el siguiente código (recordando que las manzanas están en la posición 1):
$products[1] = ['name' => 'peras', 'found' => '✔️'];
Pues ya hemos hecho nuestra lista de compras con un check para saber si logramos comprar los items o
no, ahora vamos a imprimir todos los datos dentro de nuestro arreglo multidimensional:
echo "Nombre: {$products[0]['name']} - Encontrado: {$products[0]['found']}"; // Nombre: leche - Encontrado: '✔️'
echo "Nombre: {$products[1]['name']} - Encontrado: {$products[1]['found']}"; // Nombre: peras - Encontrado: '✔️'
echo "Nombre: {$products[2]['name']} - Encontrado: {$products[2]['found']}";// Nombre: lazúcar - Encontrado: '✖️'
Aunque este código funciona y permite imprimir todos los datos no es lo más optimo, ¿que pasaría si
en lugar de solo tener 3 items tuviéramos 10 veces más?
Pues sería demasiado tedioso y una perdida de tiempo manejar ese volumen de datos de forma manual.
Afortunadamente las computadores son buenas para realizar de forma automática operaciones repetitivas
como esta, solo debemos indicar que tareas repetir mediante alguna estructura especial, estas
estructuras se conocen como bucles, ciclos, estructuras repetitivas, estructuras iterativas,
estructuras recursivas, etc.
En el próximo articulo veremos estas estructuras, y seguiremos viendo nuevas formas de usar los
arreglos para resolver todo tipo de problemas.
Conclusión
En conclusión, los arreglos en PHP son una herramienta versátil que permite organizar, gestionar y
manipular datos de manera fácil y ya conoces el uso y diferencias entre arreglos simples, arreglos
asociativos y arreglos multidimencionales.
