Menu

Arrays en PHP: crear, acceder, recorrer e imprimir

Un array en PHP es una lista ordenada de valores, cada uno guardado bajo una clave: $fruits = ['apple', 'banana']; se lee como $fruits[0]. Aprende a crear arrays, leer y cambiar elementos, recorrerlos, imprimirlos y qué función de array usar en cada caso.

Esta página incluye editores ejecutables: edita, ejecuta y ve el resultado al instante.

Un array en PHP guarda una lista de valores bajo claves. Créalo con corchetes, $fruits = ['apple', 'banana', 'cherry'];, y lee un elemento por su índice, $fruits[0]. Los índices empiezan en 0, y count($fruits) da el número de elementos.

Todo array de PHP es un mapa ordenado: cada valor está bajo una clave. Cuando no eliges las claves, PHP las numera 0, 1, 2... y obtienes un array indexado. Cuando las eliges tú (['name' => 'Ada']), obtienes un array asociativo. Los dos son el mismo tipo array.

Crear un array

Los corchetes son la sintaxis habitual. array() es la forma antigua y produce exactamente lo mismo. range() construye una lista de números o letras, y array_fill() repite un valor.

Un array de PHP puede contener a la vez valores de tipos distintos, incluidos otros arrays. Un array de arrays es un array multidimensional, la forma habitual de guardar filas de datos.

Obtener el primer y el último elemento

PHP no tiene índices negativos. $arr[-1] no significa "el último": busca una clave llamada -1 y, si no existe, PHP imprime Warning: Undefined array key -1. Usa array_key_first() y array_key_last(), que también funcionan cuando las claves no empiezan en 0.

end($queue) también devuelve el último valor, pero como efecto secundario mueve el puntero interno del array, así que la versión basada en claves es la opción más clara.

Imprimir un array

echo $arr no funciona: imprime la palabra Array y un warning. Elige la salida que encaje con lo que necesitas:

  • print_r($arr) para un volcado legible mientras depuras.
  • var_dump($arr) para ver además el tipo y la longitud de cada valor.
  • implode(', ', $arr) para convertir los valores en una cadena que mostrar.
  • json_encode($arr) para enviar el array a JavaScript o a una API.

La página de print_r y var_dump explica las opciones de formato, incluido cómo imprimir un array dentro de HTML.

Recorrer un array

foreach es el bucle hecho para arrays: te da cada valor, y también la clave si la pides. Un bucle for con índice también sirve para arrays indexados cuyas claves van desde 0 sin huecos.

Los arrays se copian, no se comparten

Asignar un array a otra variable, o pasarlo a una función, da una copia. Cambiar la copia deja intacto el original. Añade & al parámetro cuando una función deba cambiar el array de quien la llama.

Funciones de arrays por tarea

PHP trae más de 70 funciones de arrays. Estas son las que más vas a usar, cada una con su propia página:

TareaFunción
Añadir al finalarray_push() o $arr[] =
Número de elementoscount()
Comprobar si existe un valorin_array()
Encontrar la clave de un valorarray_search()
Comprobar si existe una clavearray_key_exists()
Combinar arraysarray_merge()
Transformar cada valorarray_map()
Quedarse con algunos valoresarray_filter()
Ordenarsort(), usort() y compañía
Eliminar un elementounset(), array_splice()
Tomar una partearray_slice()
Quitar duplicadosarray_unique()
De cadena a array y al revésexplode(), implode()

Claves que se fusionan sin avisar

Las claves de un array son enteros o cadenas, y PHP convierte algunas claves por ti. Una cadena que parece un número decimal entero, como "1", se convierte en el entero 1, así que $a["1"] y $a[1] son la misma posición. "01" y "1.5" se quedan como cadenas. Por eso un array construido con datos de un formulario o de un CSV puede acabar con menos elementos de los que esperabas.

Preguntas frecuentes

¿Cómo creo un array en PHP?

Usa corchetes: $colors = ['red', 'green', 'blue'];. Un array vacío es $items = [];. La sintaxis antigua array('red', 'green') hace lo mismo y sigue funcionando.

¿Cómo imprimo un array en PHP?

echo no puede imprimir un array (imprime la palabra Array y un warning). Usa print_r($arr) para un volcado legible, var_dump($arr) para ver también los tipos, o echo implode(', ', $arr) para imprimir los valores en una línea.

¿Cómo obtengo el último elemento de un array en PHP?

Usa $arr[array_key_last($arr)] (PHP 7.3+) o end($arr). PHP no tiene índices negativos: $arr[-1] busca una clave llamada -1, que normalmente no existe.

¿Los arrays de PHP se pasan por valor o por referencia?

Por valor. $b = $a; le da a $b su propia copia, así que cambiar $b no cambia $a. Para modificar el array de quien llama dentro de una función, declara el parámetro como referencia: function add(array &$list).

¿Cuál es la diferencia entre un array indexado y uno asociativo en PHP?

Son el mismo tipo. Un array indexado tiene claves enteras 0, 1, 2... que PHP asigna por ti; un array asociativo usa claves que eliges tú, normalmente cadenas como 'name'. Un mismo array puede incluso mezclar las dos.

Ilustración de los lenguajes de programación de Coddy

Aprende a programar con Coddy

COMENZAR