Arrays Indexados
Aprende a crear, leer, modificar y recorrer arrays indexados en PHP con claves numéricas automáticas.
Arrays Indexados en PHP
Un array indexado es el tipo más simple de array en PHP: una lista de valores donde cada elemento recibe automáticamente una clave numérica (su posición), comenzando en 0. Úsalo cuando tengas una colección ordenada — una lista de productos, las líneas de un archivo, las filas de un conjunto de resultados — y no necesites un nombre significativo para cada posición.
PHP tiene tres tipos de arrays en total: arrays indexados (claves numéricas, tratados aquí), arrays asociativos (claves de cadena con nombre) y arrays multidimensionales (arrays de arrays). Esta página explica cómo crear arrays indexados y cómo leer, modificar, agregar, contar e iterar sobre sus valores.
Crear un Array Indexado
Hay dos formas equivalentes de construir un array indexado. La sintaxis corta [] (PHP 5.4+) es la forma moderna y preferida; la función array() funciona en todas las versiones de PHP.
// Short syntax (recommended)
$cars = ["Volvo", "BMW", "Toyota"];
// Long syntax — identical result
$cars = array("Volvo", "BMW", "Toyota");De cualquier forma, PHP asigna las claves por ti: "Volvo" obtiene el índice 0, "BMW" obtiene 1 y "Toyota" obtiene 2. Un array vacío es simplemente $cars = [];, listo para que se le agreguen elementos más adelante.
Acceder a los Valores
Lee un valor colocando su índice entre corchetes. Recuerda que el primer elemento está en el índice 0, por lo que el índice del último elemento siempre es uno menos que la cantidad de elementos.
$cars = ["Volvo", "BMW", "Toyota"];
echo $cars[0]; // Volvo
echo $cars[2]; // ToyotaAcceder a una clave que no existe (por ejemplo $cars[9]) devuelve null y emite un aviso Warning: Undefined array key — protégete con in_array() o isset() cuando no estés seguro de que una clave existe.
Modificar Valores
Asigna un nuevo valor a un índice existente para sobreescribirlo en su lugar:
$cars = ["Volvo", "BMW", "Toyota"];
$cars[0] = "Mercedes";
echo $cars[0]; // MercedesEl array sigue teniendo tres elementos; solo cambió el valor en el índice 0.
Agregar Valores
Para añadir al final del array, asigna con la sintaxis de corchetes vacíos [] — PHP elige automáticamente el siguiente índice disponible. La función array_push() hace lo mismo y puede agregar varios valores a la vez:
$cars = ["Volvo", "BMW", "Toyota"];
$cars[] = "Audi"; // index 3
array_push($cars, "Tesla", "Kia"); // indexes 4 and 5
print_r($cars);Esto muestra:
Array
(
[0] => Volvo
[1] => BMW
[2] => Toyota
[3] => Audi
[4] => Tesla
[5] => Kia
)Contar Elementos
Usa count() para saber cuántos elementos contiene un array — útil para mostrar totales o como límite superior de un bucle:
$cars = ["Volvo", "BMW", "Toyota"];
echo count($cars); // 3Recorrer un Array Indexado
La forma más limpia de visitar cada valor es un bucle foreach, que funciona independientemente de cuántos elementos haya:
$cars = ["Volvo", "BMW", "Toyota"];
foreach ($cars as $car) {
echo $car . PHP_EOL;
}Salida:
Volvo
BMW
ToyotaSi también necesitas el índice de cada elemento, captura también la clave:
$cars = ["Volvo", "BMW", "Toyota"];
foreach ($cars as $index => $car) {
echo "$index: $car" . PHP_EOL;
}
// 0: Volvo
// 1: BMW
// 2: ToyotaUn bucle for clásico es una alternativa cuando quieres control numérico explícito:
$cars = ["Volvo", "BMW", "Toyota"];
for ($i = 0; $i < count($cars); $i++) {
echo $cars[$i] . PHP_EOL;
}Errores Comunes
- Las claves no siempre son secuenciales. Eliminar un elemento con
unset($cars[1])deja un "hueco" — las claves restantes permanecen como0y2. Llama aarray_values()para reindexar desde0si necesitas una lista limpia. - Los arrays indexados y asociativos son intercambiables. Agregar una clave de cadena (
$cars["best"] = "Volvo") convierte el array en uno mixto/asociativo. Para mantener un array puramente indexado, solo añade o asigna claves enteras. - Ordenar reorganiza y a veces reasigna las claves. Funciones como
sort()reindexa el array desde0, que es generalmente lo que quieres para una lista indexada.
Conclusión
Los arrays indexados almacenan una lista ordenada de valores bajo claves numéricas automáticas que comienzan en 0. Se crean con [], se leen y sobreescriben valores por índice, se añaden elementos con $arr[] o array_push(), se miden con count() y se iteran con foreach. Cuando necesitas datos etiquetados en lugar de posicionales, recurre a un array asociativo.