• By Nacho
  • 17 de abril de 2024

¿Qué es un array y cómo se trabaja con ellos en php? Ejemplos prácticos

¿Qué es un array y cómo se trabaja con ellos en php? Ejemplos prácticos

¿Qué es un array y cómo se trabaja con ellos en php? Ejemplos prácticos 1000 667 Nacho

Dificultad Media

Si algo te lía la cabeza a la hora de programar, es el momento en el que estudios por primera vez qué es un array. Recuerdo cuando estaba estudiando y de repente apareció esto. Realmente no es algo complicado, pero tratar con ellos puede ser una verdadera comida de taro. Saber cómo puedes manipular estos elementos en tus proyectos de programación, te puedo ayudar muchísimo en tus desarrollos. Un array puede ser tan simple como una lista de números, o tan complejo como una estructura de datos multidimensional que almacena tablas de información.

En este artículo, vamos a desglosar el concepto de arrays en PHP, ofreciendo ejemplos prácticos y hablando sobre algunos trucos poco conocidos que podrían simplificar enormemente tus tareas de programación.

¿Qué es un Array en PHP?

Un array es una estructura de datos que permite almacenar múltiples valores en una única variable. En PHP, esto significa que puedes guardar muchos elementos bajo un mismo nombre de variable, y acceder a cada elemento a través de un índice. Puedes pensar en un array como una caja de zapatos llena de postales: cada postal es accesible y se puede identificar por su posición en la caja.

Tipos de Arrays en PHP

Existen tres tipos principales de arrays en PHP:

  • Arrays Indexados: Son los más simples, donde cada elemento del array se puede acceder mediante un índice numérico que comienza en 0.
  • Arrays Asociativos: En estos arrays, cada elemento está asociado con una clave o nombre en lugar de solo un índice numérico.
  • Arrays Multidimensionales: Son arrays que contienen otros arrays como sus elementos. Estos se utilizan para almacenar datos complejos en forma de tablas.

Ejemplos Prácticos de Arrays en PHP

Vamos a ver cómo se utilizan estos diferentes tipos de arrays con ejemplos de código que puedes probar por ti mismo.

Trabajando con Arrays Simples

Las posiciones de un array pueden estar ordenadas o no. Es importante mencionar que, como en otros aspectos, la primera posición no la encontrarás con el índice 1, sino con el índice 0. Esto es muy importante, ya que si acceder al índice 1 nos llevará a encontrar la 2ª posición del array, en lugar de la 1ª. Pero no te líes con la cantidad de items dentro de un array. Si tienes 166 items dentro de un array, podrás recorrerlos desde la posición 0 hasta la posición 165.

$frutas = array("manzana", "banana", "cereza"); 
echo $frutas[0]; // Muestra "manzana"
echo $frutas[1]; // Muestra "banana"
echo $frutas[2]; // Muestra "cereza"

¿Por qué comento inicialmente lo de las posiciones, porque también podrías hacer algo así:

$frutas[165] = "fresas";

Ordenar arrays simples de manera automática

Tendrías 4 items en este array, pero no con los números consecutivos. Estaríamos delante de que nuestro array se convierte en un array asociativo donde los índices son explícitamente definidos. Si tuviésemos una array declarado de la anterior manera y quisiéramos ordenarlo para que no hayan saltos de índice, es decir, $frutas[165] se fuera a la cola en orden del array «$frutas», para reasignar los índices para que sean consecutivos (empezando desde 0 y siguiendo el orden natural), podemos utilizar la maravillosa función array_values().

Esta función extrae todos los valores de un array y los devuelve en un nuevo array indexado numéricamente, comenzando desde cero y siguiendo el orden en que se encuentran en el array original.

$frutas = array("manzana", "banana", "cereza");
$frutas[165] = "fresas";

// Reindexar el array
$frutas = array_values($frutas);

// Imprimir el array reindexado
print_r($frutas);

/* esto se convertiría en:
Array
(
    [0] => manzana
    [1] => banana
    [2] => cereza
    [3] => fresas
)*/

Así, los índices han sido reajustados y ahora son consecutivos, partiendo del cero hasta el final del array.

Trabajando con Arrays Asociativos

$edades = array("Pedro" => 35, "Ana" => 23, "Juan" => 47); 
echo $edades["Ana"]; // Muestra "23"

Aquí, $edades es un array asociativo donde cada edad está vinculada a un nombre.

Trabajando con Arrays Multidimensionales

$coches = array( "Toyota" => array("Corolla" => 20000, "Camry" => 30000), "Honda" => array("Civic" => 22000, "Accord" => 32000) ); 
echo $coches["Honda"]["Civic"]; // Muestra "22000"

Este ejemplo muestra un array multidimensional. $coches almacena arrays que representan modelos y sus precios.

Trucos Poco Conocidos para Trabajar con Arrays en PHP

Aquí hay algunos consejos y trucos que podrían facilitarte la vida cuando trabajas con arrays en PHP:

Contar elementos de un array:

La función count() en PHP es utilizada para contar el número de elementos que contiene un array. Aquí te muestro un ejemplo sencillo para ilustrar cómo puedes usar esta función para obtener la cantidad de elementos en un array. Supongamos que tienes un array de frutas como el siguiente:

$frutas = array("manzana", "banana", "cereza", "fresa");

// Contar los elementos del array
$numeroDeFrutas = count($frutas);

// Imprimir el número de frutas
echo "Hay " . $numeroDeFrutas . " frutas en el array.";

/* EL RESULTADO SERÍA:
Hay 4 frutas en el array.
*/

Revertir un array de orden:

Esta función se utiliza para invertir el orden de los elementos en un array. Esto significa que el último elemento se convierte en el primero, el penúltimo en el segundo, y así sucesivamente hasta que el primer elemento original sea el último:

$numeros = array(1, 2, 3, 4, 5);

// Invertir el array
$numerosInvertidos = array_reverse($numeros);

// Imprimir el array invertido
print_r($numerosInvertidos);

/*AL EJECUTAR EL CÓDIGO NOS APARECERÁ EN PANTALLA LO SIGUIENTE:
Array
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)
*/

Este ejemplo muestra cómo el array original [1, 2, 3, 4, 5] ha sido invertido a [5, 4, 3, 2, 1]. array_reverse() es muy útil cuando necesitas procesar los elementos de un array en el orden opuesto al que fueron ingresados, ya sea por razones de lógica del programa o por preferencia de visualización de datos.

Filtrar elementos:

La función array_filter() en PHP se usa para filtrar elementos de un array utilizando una función de callback, que define qué elementos se deben mantener y cuáles se deben eliminar. Si no se especifica una función de callback, array_filter() eliminará todos los elementos que se evalúen como false en un contexto booleano (como 0, null, false, y cadenas vacías).

Aquí te muestro cómo puedes utilizar array_filter() para filtrar un array basado en ciertos criterios.

Ejemplo 1: Filtrando sin una función de callback

En este ejemplo, vamos a filtrar un array que contiene algunos valores que son false en un contexto booleano:

$elementos = array(0, 1, "manzana", "", null, "cero", false);

// Filtrar el array sin especificar una función de callback
$elementosFiltrados = array_filter($elementos);

// Imprimir el array filtrado
print_r($elementosFiltrados);

El resultado será:

Array
(
    [1] => 1
    [2] => manzana
    [5] => cero
)

En este caso, array_filter() ha eliminado todos los elementos que son evaluados como false (0, «», null y false).

Ejemplo 2: Filtrando con una función de callback

Supongamos que quieres filtrar un array de números y conservar solo aquellos que son mayores que 10:

$numeros = array(7, 13, 2, 85, 16, 3, 22);

// Usar array_filter() con una función de callback para filtrar los números mayores que 10
$numerosMayoresQueDiez = array_filter($numeros, function($numero) {
    return $numero > 10;
});

// Imprimir el array filtrado
print_r($numerosMayoresQueDiez);

El resultado será:

Array
(
    [1] => 13
    [3] => 85
    [4] => 16
    [6] => 22
)

En este ejemplo, la función de callback function($numero) { return $numero > 10; } se utiliza para determinar si un número debe ser incluido en el array resultante o no. Todos los números mayores que 10 son conservados, mientras que los demás son eliminados.

array_filter() es extremadamente útil para eliminar elementos no deseados de un array de manera eficiente, y su capacidad de aceptar una función de callback personalizada le permite ser muy flexible y poderosa para diversas tareas de filtrado.

Combinar arrays en PHP:

La función array_merge() en PHP se utiliza para combinar uno o más arrays juntando sus elementos. Si los arrays tienen claves string que se repiten, el valor final para esa clave será tomado del último array con esa clave. Si los arrays contienen solo claves numéricas, los valores se añadirán al final del array resultante, manteniendo la numeración secuencial.

A continuación, te muestro cómo puedes utilizar array_merge() con ejemplos prácticos.

Ejemplo 1: Combinando dos arrays con claves numéricas

Supongamos que tienes dos arrays de números y deseas combinarlos:

$array1 = array(1, 2, 3);
$array2 = array(4, 5, 6);

// Combinar los arrays
$resultado = array_merge($array1, $array2);

// Imprimir el array combinado
print_r($resultado);

/* El resultado de este código será:
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)
*/

array_merge() simplemente añade en este caso los elementos de $array2 al final de $array1.

Ejemplo 2: Combinando arrays con claves string

Ahora, veamos un ejemplo donde los arrays contienen claves string:

$array1 = array("a" => "manzana", "b" => "banana");
$array2 = array("a" => "aguacate", "b" => "arándano", "c" => "cereza");

// Combinar los arrays
$resultado = array_merge($array1, $array2);

// Imprimir el array combinado
print_r($resultado);

/* El resultado será:
Array
(
    [a] => aguacate
    [b] => arándano
    [c] => cereza
)
*/

En este ejemplo, los elementos de $array2 con las mismas claves («a» y «b») reemplazan los valores correspondientes en $array1. El valor «cereza» con la clave «c» se añade al final del array combinado.

Ejemplo 3: Combinando múltiples arrays

array_merge() también puede tomar más de dos arrays como argumentos. Aquí está cómo puedes combinar tres arrays:

$array1 = array("color" => "rojo", 2, 4);
$array2 = array("a", "b", "color" => "verde", 56);
$array3 = array(10, "color" => "azul");

// Combinar los arrays
$resultado = array_merge($array1, $array2, $array3);

// Imprimir el array combinado
print_r($resultado);


/*El resultado sería:
Array
(
    [color] => azul
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [4] => 56
    [5] => 10
)
*/

Aquí, los elementos de $array2 y $array3 son añadidos al final de $array1 en el orden en que se especifican, y los valores de las claves que se repiten se sobrescriben con el último valor especificado para esa clave («color» => «azul»).

array_merge() es una herramienta poderosa para manejar datos que necesitan ser combinados de diferentes fuentes, simplificando el proceso de unificación de arrays en PHP.

Dejar una Respuesta