W3docs

Funciones de Array en PHP: Guía Completa

Los arrays en PHP son una estructura de datos fundamental. Aprende a crear, recorrer y manipular arrays indexados, asociativos y multidimensionales.

Un array en PHP es una variable única que almacena una colección de valores. En lugar de declarar $user1, $user2, $user3, los guardas todos en un solo array y accedes a ellos mediante un índice (un número) o una clave (un nombre). Los arrays son uno de los bloques de construcción más utilizados en PHP: los datos de solicitudes ($_POST, $_GET), las filas de base de datos y la configuración se entregan como arrays.

Este capítulo explica los tres tipos de array en PHP, cómo crearlos y leerlos, cómo recorrerlos en bucle y las funciones integradas que usarás con más frecuencia.

Tres tipos de array

PHP tiene un único tipo de array internamente, pero lo verás utilizado de tres formas distintas:

TipoClavesUso típico
IndexadoEnteros automáticos 0, 1, 2…Una lista ordenada de elementos
AsociativoStrings que tú eligesUn registro con campos con nombre
MultidimensionalArrays anidados dentro de arraysTablas, datos agrupados

Crear arrays

La sintaxis corta moderna usa corchetes []; la forma antigua con array() es equivalente y sigue funcionando.

<?php

// Indexed array — keys 0, 1, 2 are assigned automatically
$fruits = ["apple", "banana", "cherry"];

// Associative array — you choose the keys
$user = [
    "name"  => "Ada",
    "email" => "[email protected]",
    "admin" => true,
];

echo $fruits[0];      // apple
echo $user["name"];   // Ada

Añade elementos a un array con la sintaxis de corchetes vacíos, que agrega al final:

<?php

$fruits = ["apple", "banana"];
$fruits[] = "cherry";      // index 2
$fruits[] = "date";        // index 3

print_r($fruits);
// Array ( [0] => apple [1] => banana [2] => cherry [3] => date )

Consulta indexed arrays, associative arrays y multidimensional arrays para una cobertura más detallada de cada tipo.

Recorrer un array con bucles

El bucle foreach es la forma idiomática de recorrer un array, ya que te proporciona la clave y el valor directamente sin necesidad de gestionar índices manualmente:

<?php

$user = ["name" => "Ada", "email" => "[email protected]"];

foreach ($user as $key => $value) {
    echo "$key: $value\n";
}
// name: Ada
// email: [email protected]

Consulta el capítulo sobre el foreach loop para ver la sintaxis completa, incluido el recorrido por referencia.

Cómo funcionan las funciones de array

PHP incluye cientos de funciones de array — ayudantes predefinidos que realizan una operación específica para que no tengas que escribir el bucle tú mismo. Algo clave que debes entender: la mayoría de ellas devuelven un nuevo array y dejan el original intacto (array_map, array_filter, array_merge…), mientras que un grupo más pequeño modifica el array en su lugar y devuelve otra cosa (sort devuelve true, array_push devuelve la nueva longitud). Saber cuál es cuál evita una clase común de errores.

Llamas a una función pasando el array como argumento. Por ejemplo, array_sum suma todos los valores:

php— editable, runs on the server

Funciones que más usarás

FunciónQué hace¿Muta?
count()Número de elementosno
in_array()¿Está presente un valor?no
array_keys()Todas las claves como arrayno
array_values()Todos los valores, reindexados desde 0no
array_merge()Une dos o más arraysno
array_slice()Extrae una porciónno
array_unique()Elimina valores duplicadosno
array_push()Agrega uno o más valores
sort()Ordena los valores en orden ascendente

Aquí están las tres funciones de callback más importantes — map, filter y reduce — que cubren la mayoría de las tareas de transformación de datos.

array_map — transformar cada elemento

array_map ejecuta un callback sobre cada valor y devuelve un nuevo array con los resultados, de la misma longitud que el original:

<?php

$numbers = [1, 2, 3, 4];
$squared = array_map(fn($n) => $n * $n, $numbers);

print_r($squared);
// Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 )

array_filter — conservar solo lo que coincide

array_filter conserva los elementos para los cuales el callback devuelve true. Ten en cuenta que preserva las claves originales, por lo que a menudo se combina con array_values() para reindexar:

<?php

$numbers = [1, 2, 3, 4, 5, 6];
$even = array_filter($numbers, fn($n) => $n % 2 === 0);

print_r($even);
// Array ( [1] => 2 [3] => 4 [5] => 6 )   ← keys kept

print_r(array_values($even));
// Array ( [0] => 2 [1] => 4 [2] => 6 )   ← re-indexed

array_reduce — colapsar a un único valor

array_reduce aplica un callback que lleva un acumulador ($carry) a lo largo de todo el array, reduciéndolo a un resultado — una suma, un string, un máximo, lo que sea:

php— editable, runs on the server

Consulta array_map, array_filter y array_reduce para más detalles, y PHP callback functions para entender cómo funcionan los callbacks.

Errores comunes

  • array_filter preserva las claves. Como se mostró arriba, el resultado ya no es 0, 1, 2…. Envuélvelo en array_values() cuando necesites una lista limpia.
  • array_merge renumera las claves enteras pero sobreescribe las claves string. array_merge(["a" => 1], ["a" => 2]) da ["a" => 2], mientras que dos arrays indexados se concatenan, no se sobreescriben.
  • Mutar vs. devolver. sort($arr) modifica $arr y devuelve true — escribir $arr = sort($arr) es un error clásico que asigna true a $arr.
  • Acceder a una clave inexistente emite un aviso y devuelve null. Protégete con isset() o array_key_exists() primero.

Conclusión

Los arrays en PHP tienen tres variantes — indexados, asociativos y multidimensionales — y existe una amplia biblioteca de funciones para consultarlos, transformarlos y combinarlos. Usa foreach para iterar, array_map / array_filter / array_reduce para transformar datos, y ten siempre en mente la distinción entre mutar y devolver para evitar sorpresas. Desde aquí, explora sorting arrays y PHP functions para completar tu conjunto de herramientas.

Práctica

Práctica
¿Qué afirmaciones son verdaderas sobre los Arrays en PHP?
¿Qué afirmaciones son verdaderas sobre los Arrays en PHP?
Was this page helpful?