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:
| Tipo | Claves | Uso típico |
|---|---|---|
| Indexado | Enteros automáticos 0, 1, 2… | Una lista ordenada de elementos |
| Asociativo | Strings que tú eliges | Un registro con campos con nombre |
| Multidimensional | Arrays anidados dentro de arrays | Tablas, 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"]; // AdaAñ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 arraysymultidimensional arrayspara 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:
Funciones que más usarás
| Función | Qué hace | ¿Muta? |
|---|---|---|
count() | Número de elementos | no |
in_array() | ¿Está presente un valor? | no |
array_keys() | Todas las claves como array | no |
array_values() | Todos los valores, reindexados desde 0 | no |
array_merge() | Une dos o más arrays | no |
array_slice() | Extrae una porción | no |
array_unique() | Elimina valores duplicados | no |
array_push() | Agrega uno o más valores | sí |
sort() | Ordena los valores en orden ascendente | sí |
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-indexedarray_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:
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_filterpreserva las claves. Como se mostró arriba, el resultado ya no es0, 1, 2…. Envuélvelo enarray_values()cuando necesites una lista limpia.array_mergerenumera 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$arry devuelvetrue— escribir$arr = sort($arr)es un error clásico que asignatruea$arr. - Acceder a una clave inexistente emite un aviso y devuelve
null. Protégete conisset()oarray_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.