Arrays en PHP

En la sección dedicada a los tipos de datos en PHP, exploramos la diversidad de información que podemos manejar en nuestros programas. Uno de los conceptos más poderosos y versátiles dentro de los tipos de datos en PHP es el array. En esta sección nos sumergiremos en las profundidades de los arrays en PHP, explorando sus diversos tipos y aprendiendo a realizar operaciones fundamentales con ellos.

Los arrays son como contenedores flexibles que nos permiten organizar y acceder a datos de manera eficiente. Ya no se trata solo de almacenar un valor único, sino de gestionar conjuntos enteros de información. Por ejemplo, podemos tener un array que almacene diferentes tipos de frutas:

$frutas = array("Manzana", "Banana", "Fresa", "Uva", "Pera");

En PHP, los arrays pueden adoptar diferentes formas para adaptarse a las necesidades específicas de tu aplicación. A continuación, exploraremos tres tipos principales:

Arrays Indexados

Los arrays indexados en PHP son estructuras de datos que almacenan una colección de elementos ordenados secuencialmente. Cada elemento en el array tiene un índice numérico que comienza desde 0 y se incrementa en 1 para cada elemento adicional.

Para crear un array utilizamos la función array() indicando entre los paréntesis cada uno de los valores que queremos almacenar en el array. Para acceder a cualquiera de los elementos del array o modificar su valor, usamos sus índices numéricos encerrados entre llaves [].

<?php
// Declaración de un array indexado
$frutas = array("Manzana", "Banana", "Fresa", "Uva", "Pera");

// Acceso a elementos por índice
echo "La primera fruta es: " . $frutas[0] . "<br>";
echo "La tercera fruta es: " . $frutas[2] . "<br>";

// Modificación de un elemento
$frutas[1] = "Kiwi";
echo "Después de la modificación, la segunda fruta es: " . $frutas[1] . "<br>";

// Añadir un nuevo elemento al final
$frutas[] = "Naranja";
?>

Recorrer un array indexado, como el array de frutas que hemos utilizado previamente, se puede hacer de diversas maneras en PHP. La manera más común y sencilla es mediante un bucle foreach. Este bucle itera sobre cada elemento del array, permitiéndote realizar acciones con cada uno de ellos.

Aquí tienes un ejemplo simple de cómo recorrer el array indexado de frutas con un bucle foreach:

<?php
// Declaración de un array indexado
$frutas = array("Manzana", "Banana", "Fresa", "Uva", "Pera");

// Mostrar todas las frutas con un bucle foreach
echo "Lista de frutas:<br>";
foreach ($frutas as $fruta) {
    echo $fruta . "<br>";
}
?>

Arrays Asociativos

Los arrays asociativos en PHP son estructuras de datos en las que cada elemento se asocia con una clave personalizada en lugar de un índice numérico. Esto permite utilizar claves descriptivas en lugar de números para identificar y acceder a los elementos del array.

Para crear un array asociativo, utilizamos también la función array() y especificamos pares clave-valor, donde la clave y el valor están separados por => (flecha). Aquí hay un ejemplo:

<?php
// Declaración de un array asociativo
$edades = array("Juan" => 25, "María" => 30, "Pedro" => 22, "Ana" => 28);
?>

En este caso, tenemos un array asociativo llamado $edades donde las claves son nombres (por ejemplo, «Juan») y los valores son las edades correspondientes.

Para acceder a los elementos de un array asociativo, utilizamos las claves. Por ejemplo:

<?php
// Acceso a elementos por clave
echo "La edad de Juan es: " . $edades["Juan"] . " años.<br>";
echo "La edad de Ana es: " . $edades["Ana"] . " años.<br>";
?>

Aquí, $edades["Juan"] devuelve el valor asociado a la clave «Juan» en el array asociativo $edades.

Para modificar un valor en un array asociativo, simplemente asignamos un nuevo valor a la clave correspondiente. Por ejemplo:

<?php
// Modificación de un elemento
$edades["Pedro"] = 24;
?>

En este caso, cambiamos la edad de «Pedro» de 22 a 24.

Recorrer un array asociativo, como el array de edades que hemos utilizado anteriormente, se puede hacer de manera sencilla con un bucle foreach:

<?php
// Declaración del array asociativo
$edades = array("Juan" => 25, "María" => 30, "Pedro" => 22, "Ana" => 28);

// Mostrar todas las edades con un bucle foreach
foreach ($edades as $nombre => $edad) {
    echo "$nombre tiene $edad años.<br>";
}
?>

foreach ($edades as $nombre => $edad) significa que estamos recorriendo cada par clave-valor del array $edades. En cada iteración, la variable $nombre contendrá la clave (en este caso el nombre) y la variable $edad contendrá el valor asociado (en este caso la edad). El bloque de código dentro del bucle foreach se ejecuta para cada par clave-valor del array.

Arrays Multidimensionales

Los arrays multidimensionales en PHP son arrays que contienen uno o más arrays dentro de sí mismos. Estos son útiles cuando necesitas organizar datos de manera más compleja, como en una matriz bidimensional o tridimensional. Un array multidimensional es como una caja que contiene otras cajas. Puedes tener una caja principal (el array externo) que contiene varias cajas más pequeñas (los arrays internos).

La creación de un array multidimensional implica anidar arrays dentro de otros. Aquí hay un ejemplo simple de una matriz bidimensional:

<?php
// Declaración de un array multidimensional
$personas = array(
    array("nombre" => "Juan", "edad" => 25, "ocupacion" => "Estudiante"),
    array("nombre" => "María", "edad" => 30, "ocupacion" => "Ingeniera"),
    array("nombre" => "Pedro", "edad" => 22, "ocupacion" => "Diseñador")
);
?>

En este caso, $personas es un array que contiene tres arrays internos, cada uno representando a una persona. Para acceder a los elementos de un array multidimensional, utilizamos los índices de cada uno de los elementos. Por ejemplo, vamos a acceder a la información de la segunda persona (María) en nuestro array multidimensional:

<?php
// Acceso a la información de la segunda persona
echo "Nombre: " . $personas[1]["nombre"] . "<br>";
echo "Edad: " . $personas[1]["edad"] . " años.<br>";
echo "Ocupación: " . $personas[1]["ocupacion"] . "<br>";
?>

A continuación vamos a cambiar la edad de Juan en nuestro array multidimensional:

<?php
// Modificación de la edad de Juan
$personas[0]["edad"] = 26;
?>

Ahora, Juan tendrá una edad de 26 años en lugar de 25.

Recorrer un array multidimensional, como el de $personas, se puede realizar de manera sencilla utilizando bucles foreach anidados.

<?php
// Recorrer el array multidimensional con bucles foreach
foreach ($personas as $persona) {
    echo "Información de la persona:
";
    foreach ($persona as $clave => $valor) {
        echo ucfirst($clave) . ": " . $valor . "<br>";
    }
    echo "
";
}
?>

Explicación:

  • El primer bucle foreach recorre el array externo ($personas) y en cada iteración, la variable $persona contendrá un array interno que representa a una persona específica.
  • El segundo bucle foreach recorre cada array interno ($persona) y en cada iteración, la variable $clave contendrá la clave asociativa (por ejemplo, «nombre», «edad», «ocupacion») y la variable $valor contendrá el valor asociado.
  • La función ucfirst($clave) se utiliza mostrar la clave con la primera letra en mayúscula, lo que hace que la salida sea más legible.