Arrays en PHP
Trabajando con el único y flexible tipo de array de PHP — indexado, asociativo, y las funciones integradas que los manipulan.
2 min de lectura
Los arrays son la estructura de datos por excelencia de PHP — no existe un tipo "lista" o "diccionario" por separado, solo un array que puede comportarse como cualquiera de los dos.
Creando arrays
<?php
$colors = ["red", "green", "blue"];
$colors2 = array("red", "green", "blue"); // older syntax, same result
$person = [
"name" => "Amara",
"age" => 28,
];[...] (sintaxis corta de array) es el estándar moderno; array(...) todavía funciona, pero rara vez se escribe en código nuevo. Las claves son opcionales — omítelas para obtener una lista indexada simple, o proporciona las tuyas propias con => para un array asociativo.
Añadir, acceder y eliminar elementos
<?php
$colors = ["red", "green"];
$colors[] = "blue"; // append to the end
echo $colors[0]; // "red"
unset($colors[1]); // remove "green" — leaves a gap in the numeric keys
$colors = array_values($colors); // re-index from 0 if a clean sequence matters$colors[] = ... es la forma idiomática de añadir un elemento al final. unset() elimina un elemento por su clave, pero no renumera los restantes — array_values() restablece las claves a una secuencia limpia 0, 1, 2... después, cuando eso importa.
Funciones de array comunes
<?php
$numbers = [3, 1, 4, 1, 5];
echo count($numbers); // 5
sort($numbers); // [1, 1, 3, 4, 5], sorted in place
print_r(array_unique($numbers)); // duplicates removed
echo array_sum($numbers); // sum of all elements
var_dump(in_array(4, $numbers)); // truecount(), sort(), array_unique(), array_sum() e in_array() cubren la mayoría de las necesidades cotidianas. Ten en cuenta que sort() (y sus parientes como rsort, asort) modifican el array in place (directamente, sin crear uno nuevo) y devuelven true/false, no el array ordenado — una fuente común de confusión para quien espera un valor de retorno de estilo funcional.
Transformando arrays: map, filter, reduce
<?php
$prices = [10, 25, 5, 40];
$withTax = array_map(fn($price) => $price * 1.1, $prices);
$expensive = array_filter($prices, fn($price) => $price > 10);
$total = array_reduce($prices, fn($carry, $price) => $carry + $price, 0);array_map() transforma todos los elementos, array_filter() conserva solo los elementos que cumplen una condición (y mantiene las claves originales, lo que a menudo implica seguirlo con array_values()), y array_reduce() reduce el array a un único valor, partiendo de un valor inicial (0 en este caso). Los tres reciben un callback — fn(...) => ... es la sintaxis compacta de función flecha de PHP, cubierta con más detalle en las lecciones de funciones.
Arrays multidimensionales
<?php
$users = [
["name" => "Amara", "role" => "admin"],
["name" => "Diego", "role" => "editor"],
];
foreach ($users as $user) {
echo "{$user['name']} — {$user['role']}\n";
}Un array puede contener otros arrays como valores — así es como PHP representa cualquier cosa con forma de tabla, y es exactamente la estructura que obtienes de la mayoría de los resultados de consultas a bases de datos antes de convertirlos en objetos.
Pon a prueba lo que acabas de aprender
4 preguntas rápidas. Respóndelas todas correctamente para desbloquear la siguiente lección.
Puedes hacer el cuestionario sin una cuenta — iniciar sesión solo hace que tu resultado cuente para tu progreso.