Manejo de Arrays — parte 3

Intermedio
PHP
PHP
Actualizado: 19/04/2026

Iteración y recorrido de arrays

La iteración y el recorrido de arrays son fundamentales en PHP para procesar y manipular eficientemente los datos almacenados en arrays. PHP proporciona varias estructuras y funciones que facilitan el acceso y modificación de cada elemento de un array de manera sencilla.

El bucle foreach es la manera más común de recorrer los elementos de un array. Este bucle itera automáticamente sobre cada elemento, asignando su valor a una variable temporal. Por ejemplo:

<?php

$frutas = ["Manzana", "Banana", "Cereza"];

foreach ($frutas as $fruta) {
    echo "Fruta: $fruta\n";
}

En cada iteración, la variable $fruta contiene el valor del elemento actual. La salida será:

Fruta: Manzana
Fruta: Banana
Fruta: Cereza

Si es necesario acceder tanto a la clave como al valor de cada elemento, se puede utilizar la siguiente sintaxis:

<?php

$precios = [
    "manzana" => 0.5,
    "naranja" => 0.75,
    "plátano" => 0.4
];

foreach ($precios as $fruta => $precio) {
    echo "El precio de $fruta es $precio euros\n";
}

Esto es especialmente útil al trabajar con arrays asociativos. La salida será:

El precio de manzana es 0.5 euros
El precio de naranja es 0.75 euros
El precio de plátano es 0.4 euros

Para modificar directamente los valores de un array durante su recorrido, es necesario utilizar una referencia en el bucle foreach. Al anteponer & a la variable de valor, se puede alterar el array original:

<?php

$numeros = [1, 2, 3, 4, 5];

foreach ($numeros as &$numero) {
    $numero *= 2;
}

unset($numero); // Es recomendable eliminar la referencia después del bucle

print_r($numeros);

La salida será:

Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)

Los bucles for y while también pueden utilizarse para recorrer arrays, especialmente cuando se trabaja con índices numéricos. Por ejemplo, utilizando for:

<?php

$letras = ["A", "B", "C", "D"];
$longitud = count($letras);

for ($i = 0; $i < $longitud; $i++) {
    echo "Índice $i: " . $letras[$i] . "\n";
}

La salida será:

Índice 0: A
Índice 1: B
Índice 2: C
Índice 3: D

Al utilizar un bucle while, se pueden aprovechar las funciones de manejo de arrays como current(), next(), reset() y key() para controlar la posición del puntero interno del array:

<?php

$animales = ["Perro", "Gato", "Ratón"];

while (($animal = current($animales)) !== false) {
    echo $animal . "\n";
    next($animales);
}

La salida será:

Perro
Gato
Ratón

Para recorrer arrays multidimensionales, se utilizan bucles anidados. Por ejemplo, para iterar sobre un array bidimensional:

<?php

$matriz = [
    [1, 2],
    [3, 4],
    [5, 6]
];

foreach ($matriz as $fila) {
    foreach ($fila as $valor) {
        echo $valor . " ";
    }
    echo "\n";
}

La salida será:

1 2 
3 4 
5 6 

PHP proporciona funciones como array_walk() y array_map() para aplicar una función a cada elemento de un array. La función array_walk() permite ejecutar una función de usuario sobre cada par clave-valor:

<?php

$edades = ["Juan" => 25, "Ana" => 30, "Luis" => 28];

array_walk($edades, function($edad, $nombre) {
    echo "$nombre tiene $edad años\n";
});

La salida será:

Juan tiene 25 años
Ana tiene 30 años
Luis tiene 28 años

Por otro lado, array_map() devuelve un nuevo array con los resultados de aplicar una función a cada elemento:

<?php

$numeros = [1, 2, 3, 4];

$cuadrados = array_map(function($n) {
    return $n * $n;
}, $numeros);

print_r($cuadrados);

La salida será:

Array
(
    [0] => 1
    [1] => 4
    [2] => 9
    [3] => 16
)

Es posible interrumpir un bucle durante la iteración utilizando las sentencias break y continue. La sentencia break termina el bucle, mientras que continue salta a la siguiente iteración:

<?php

$numeros = [1, 2, 3, 4, 5];

foreach ($numeros as $numero) {
    if ($numero == 3) {
        continue; // Salta el número 3
    }
    if ($numero == 5) {
        break; // Termina el bucle al llegar a 5
    }
    echo "Número: $numero\n";
}

La salida será:

Número: 1
Número: 2
Número: 4

Cuando es necesario asignar múltiples variables a partir de los elementos de un array durante la iteración, se puede utilizar la función list():

<?php

$coordenadas = [[1, 2], [3, 4], [5, 6]];

foreach ($coordenadas as list($x, $y)) {
    echo "X: $x, Y: $y\n";
}

La salida será:

X: 1, Y: 2
X: 3, Y: 4
X: 5, Y: 6

Para recorrer un array en orden inverso, se puede utilizar array_reverse() o ajustar el bucle para iterar desde el final:

<?php

$letras = ["A", "B", "C", "D"];
$letrasInvertidas = array_reverse($letras);

foreach ($letrasInvertidas as $letra) {
    echo "Letra: $letra\n";
}

La salida será:

Letra: D
Letra: C
Letra: B
Letra: A

Al iterar parcialmente un array, array_slice() permite extraer una porción específica:

<?php

$numeros = [10, 20, 30, 40, 50];

$subset = array_slice($numeros, 1, 3);

foreach ($subset as $numero) {
    echo "Número: $numero\n";
}

La salida será:

Número: 20
Número: 30
Número: 40

Los iteradores del SPL (Standard PHP Library) ofrecen una forma avanzada de recorrer arrays y objetos. La clase ArrayIterator permite tratar un array como un objeto que implementa la interfaz Iterator:

<?php

$frutas = new ArrayIterator(["Manzana", "Banana", "Cereza"]);

foreach ($frutas as $fruta) {
    echo "Fruta: $fruta\n";
}

Además, es importante tener en cuenta las mejores prácticas al iterar arrays, como evitar modificar la estructura del array mientras se recorre, o liberar referencias después de usarlas para prevenir problemas de memoria o comportamiento inesperado.

La comprensión profunda de las distintas formas de iterar y recorrer arrays en PHP permite manejar estructuras de datos de manera eficiente y escribir código más claro y mantenible.

Alan Sastre - Autor del tutorial

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, PHP es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.

Más tutoriales de PHP

Explora más contenido relacionado con PHP y continúa aprendiendo con nuestros tutoriales gratuitos.

Aprendizajes de esta lección

Recorrer arrays con foreach accediendo a clave y valor. Modificar elementos directamente mediante referencias en foreach. Utilizar bucles for y while con funciones de puntero interno como current, next y key. Iterar arrays multidimensionales con bucles anidados. Aplicar array_walk y array_map para ejecutar funciones sobre cada elemento. Controlar la iteración con break y continue.

Cursos que incluyen esta lección

Esta lección forma parte de los siguientes cursos estructurados con rutas de aprendizaje