Lo revisado en la sección anterior
En la sección anterior revisamos la sintaxis para los datos tipo arreglo, útiles para agrupar y enlistar datos recuperables mediante posición de índices numéricos.
Ahora revisaremos al arreglo dimensional. Este no es más que una múltiple lista de datos organizados mediante categorías (columnas de datos) y filas (relaciones de datos).
Pensemos en un arreglo dimensional (es decir, de más de una categoría de datos) como la lista de calificaciones de un aula de clases: en las columnas Nombre, Matemáticas y Ciencias existen datos diferentes. Pero cada fila será representada con un código irrepetible, aunque los datos pueden ser similares en cada fila.
En .PHP
Cod. -- Nombre -- Aula -- Matemáticas -- Ciencias
01 ---- Edu A2 9 8
02 ---- Adrian A2 9 8.8
Sin embargo, hay que tener bien claro lo siguiente: los arreglos multidimensión NO deberían contener datos sin relaciones lógicas claras. Cuidar eso ayuda a que la recuperación de datos sea lógica y en relación a los datos de cada columna. En el ejemplo de abajo, la categoría de temperatura de color no pemitiría, por ejemplo, crear un bucle de asignación de elementos en variables por separado mediante el constructor list()
. La mejor práctica sería alojar esa última categoría en un arreglo aparte.
En .PHP
<?php
$ colores = [
["azul", "violeta", "gris"], // colores
["naranja", "verde", "amarillo"], // colores
["cálido", "frío"] // temperatura de color (otro concepto)
]
?>
Los arreglos multidimensionales aplicados en lenguajes de programación están basados en las matrices algebráicas, en la que un literal (la letra R o cualquier otra) aloja un conjunto de subliterales que representan valores y posiciones. \[ R = \left( \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right) \]
En lenguajes de programación como en PHP podemos armar matrices (también llamados arreglos multidimensión) primero creando los arreglos iniciales a partir del Función especial cuyo argumento crea una estructura de datos con propiedades predefinidas, como un arreglo. constructor array()
y luego combinarlos para formar un solo conjunto accesible de datos. OJO: Recordemos que cada elemento de un arreglo tiene un índice de posicionamiento que inicia desde el cero en adelante.
ATENCIÓN CON EL CIERRE DE UN ARREGLO
En PHP cada arreglo finaliza o cierra con un punto y coma.
Lo siguiente dará error, aunque sea un solo arreglo:
$arreglo = ["a", "b", "c"]
Sin el cierre de ;
el arreglo se mostrará incompleto y dará error de sintaxis.
En .PHP
<?php
// Fila índice cero
$numA = array(1, 2, 3);
// Fila índice uno
$numB = array(4, 5, 6);
// Fila índice dos
$numC = array(7, 8, 9);
// Unirlos en nuevo arreglo
$combinadoABC = array($numA, $numB, $numC);
// Apunta a la fila [cero], índice [uno]
$r = $combinadoABC[0][1];
echo "$r\n";
// 2
// Apunta a la fila [dos], índice [dos]
$r = $combinadoABC[2][2];
echo "$r\n";
// 9
?>
Existen dos sintaxis válidas para crear arreglos. La primera es extensa mediante subarreglos creados con el constructor array()
y alojando cada arreglo en una variable por separado. Esto permite crear (de forma asíncrona o luego de cumplida una condición), alterar o verificar cada subarreglo y luego unirlo en uno solo; sin embargo crea código más largo. La otra forma es breve y directa, donde los elementos se agrupan en una sola variable, pero no permite controlar cada conjunto de arreglos por separado.
En .PHP
<?php
// 1) FORMA DIRECTA Y BREVE
// Útil con datos ya definidos
$usuarios = [
["Ana", "Gómez", 25],
["Luis", "Martínez", 30]
];
echo $usuarios[0][1] . "\n";
// Gómez
// 2) FORMA EXTENSA PERO MÁS CÓDIGO
// Útil cuando los datos se generan a mediano plazo
$usuariosA = array("Ana", "Gómez", 25);
$usuariosB = array("Luis", "Martínez", 30);
$todos = array($usuariosA, $usuariosB);
echo $todos[0][1];
// Gómez
?>
Igual para crear un arreglo multidimensión con caracteres o palabras. Ojo con el uso del constructor array()
en cada generación de un subarreglo y para crear el arreglo multidimensional combinado.
En .PHP
<?php
// índice cero
$frasesA = array("hola buen", "Guayaquil", "Quito");
// índice uno
$frasesB = array("dia", "noche");
// El arreglo multidimensional completo
$frasesAB = array($frasesA, $frasesB);
// Ojo con apuntar al elemento y al índice correcto
$r = $frasesAB[0][0] . " " . $frasesAB[1][0] . " " . $frasesAB[0][1];
echo "$r\n";
// hola buen dia Guayaquil
?>
Constructor list()
Toma los valores de un arreglo indexado y los asigna, uno por uno, a variables individuales. En otras palabras, si un arreglo es una cajonera de valores, entonces list()
extrae cada elemento de esa cajonera (respetando su ubicación, en orden) y los guarda en una nueva caja externa e independiente con su respectivo índice de ubicación: un elemento y un índice por caja.
En .PHP
<?php
// arreglo con elementos
$ciudades = ["Ecuador", "Guayaquil", "Cuenca"];
// Extraer desde $ciudades cada elemento y
// alojarlo (en orden) según estas nuevas variables creadas
list($pais, $costa, $sierra) = $ciudades;
echo "Las ciudades de $costa ". "y ". "$sierra son de $pais.\n";
// Las ciudades de Guayaquil y Cuenca son de Ecuador.
?>
Igualmente, para arreglos multidimensionales el constructor list()
extrae cada elemento y lo aloja (en orden) en cada variable; pero también la función foreach()
recorrerá cada elemento y lo asignará a un nuevo arreglo.
En .PHP
<?php
// Categoria A
$colores = [
["azul", "violeta", "gris"],
["naranja", "verde", "amarillo"]
];
// Categoria B
$categorias = ["fríos", "cálidos"];
// Recorrido
// Para cada elemento de $colores
// recorre cada índice
// y aloja en $paraCadaGrupo
foreach ($colores as $ApuntaEnCadaIndice => $paraCadaGrupo) {
// Crea variables de alojamiento
// Extrae cada color de $paraCadaGrupo
list($colorA, $colorB, $colorC) = $paraCadaGrupo;
// Nueva variable aloja $categorias
// apuntando a cada indice
$tipo = $categorias[$ApuntaEnCadaIndice];
// Muestra los colores de $paraCadaGrupo
// y recorre $tipo, que es quien aloja las categorias
echo "Los colores $colorA, $colorB y $colorC son $tipo.\n";
}
/*
Los colores azul, violeta y gris son fríos.
Los colores naranja, verde y amarillo son cálidos.
*/
?>
BIBLIOGRAFÍA
www.php.net (2025). ¿Qué es PHP?Kevin Tatroe and Peter MacIntyre (2020). Programming PHP