PHP proporciona varias formas de recorrer arrays utilizando tanto funciones de iteración de arrays como construcciones del lenguaje: array_walk
array_map
array_filter
foreach
list
each
, y for
bucles. En esta página demostramos y describimos foreach
y otras construcciones de bucle. Cubrimos las funciones de iteración en otra página.
foreach
El bucle foreach
de PHP proporciona una forma conveniente de iterar sobre arrays. Hay dos formas: una utiliza tanto la clave como el valor de cada entrada del array mientras que la otra utiliza sólo el valor. Primero demostramos la forma key => value
:
El cuerpo del bucle utiliza echo
para mostrar la clave y el valor de cada elemento del array sucesivamente.
En este ejemplo, foreach
utiliza sólo el valor de los elementos del array:
$pets = ;foreach ($pets as $val) { echo "$val \n";}/*Morie Miki Halo Winnie */
La construcción foreach
puede utilizarse para modificar los valores del array que atraviesa utilizando el signo de referencia (&
):
list/each
Otra forma común de recorrer arrays utiliza un bucle while
con la construcción de lenguaje list
y la función each
. El siguiente ejemplo consigue el mismo resultado que el primer foreach
ejemplo mostrado anteriormente:
Al iterar sobre el array, la función each
se utiliza para devolver el par clave-valor actual y avanzar el puntero del array. La función list
se utiliza para asignar la clave y el valor a las variables. El bucle while
termina cuando se alcanza el último elemento del array. La función reset
se invoca para restaurar el puntero del array al primer elemento del mismo.
La construcción list
each
puede utilizarse tanto con la clave como con el valor, o sólo con el valor. El siguiente ejemplo produce el mismo resultado que el segundo foreach
ejemplo mostrado anteriormente:
$pets = ;reset($pets);while ( list(, $val) = each($pets) ) { echo "$val \n";}/*Morie Miki Halo Winnie*/
for
Se puede utilizar un bucle for
para iterar sobre arrays indexados numéricamente, como demostramos aquí:
$ar = ;for ($i=0, $len=count($ar); $i<$len; $i++) { echo "$ar \n";}/*Rudi Morie Halo Miki */
El ejemplo anterior utilizaba echo
para mostrar el valor actual en cada iteración del bucle. También se puede utilizar un bucle for
para modificar los valores, como demuestra lo siguiente:
$ar = ;for ($i=0, $len=count($ar); $i<$len; $i++) { $ar *= 2;}print_r($ar);/* Array( => 2 => 4 => 6 => 8) */
Funciones de iteración de arrays en PHP
Averigua más sobre cómo recorrer arrays en PHP utilizando las funciones de iteración: array_walk
array_map
, y array_filter
.
Volver al principio