(PHP 4, PHP 5, PHP 7)
each — Devolver el par clave/valor actual de un array y avanzar el cursor del array
Esta función ha sido declarada OBSOLETA a partir de PHP 7.2.0. Su uso está totalmente desaconsejado.
&$array
) : arrayDevuelve el par clave/valor actual de un array y avanza el cursor del array.
Después de que each() haya sido ejecutado, el cursor del array será puesto en el siguiente elemento del array, o pasado el último elemento si alcanza el final del array. Se tiene que usar reset() si se quiere atravesar de nuevo el array usando each.
array
El array de entrada.
Devuelve el par clave/valor actual del array dado por
array
. Este par es devuelto en un array de cuatro
elementos, con las claves 0, 1,
key, y value. Los elementos
0 y key contienen el nombre de la clave del
elemento del array, y 1 y value
contienen la información.
Si el puntero interno del array apunta al final del contenido de
array, each() devuelve
FALSE
.
Ejemplo #1 Ejemplo de each()
<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>
$bar ahora contienelos siguientes pares clave/valor:
Array ( [1] => bob [value] => bob [0] => 0 [key] => 0 )
<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>
$bar ahora contienelos siguientes pares clave/valor:
Array ( [1] => Bob [value] => Bob [0] => Robert [key] => Robert )
each() se usa normalmente junto con list() para atravesar un array. Aquí hay un ejemplo:
Ejemplo #2 Atravesar un array con each()
<?php
$fruta = array('a' => 'manzana', 'b' => 'banana', 'c' => 'arándano');
reset($fruta);
while (list($clave, $valor) = each($fruta)) {
echo "$clave => $valor\n";
}
?>
El resultado del ejemplo sería:
a => manzana b => banana c => arándano
Ya que asignar un array a otra variable reinicia el puntero del array original (nuestro ejemplo de arriba causaría un bucle sin fin), hemos asignado $fruta a otra variable dentro del bucle.
each() también aceptará objetos, pero puede devolver resultados inesperados. Por lo tanto, no se recomienda iterar propiedades de objetos con each().