Here's a slight revision to xmlich02's backwards iteration example. The problem with his/her example is that it will halt if any of the array elements are boolean false, while this version will not.
<?php
end($ar);
while ( !is_null($key = key($ar)) ) {
$val = current($ar);
echo "{$key} => {$val}\n";
prev($ar);
}
?>
prev
(PHP 4, PHP 5)
prev — Rebobina el puntero interno del array
Descripción
Rebobina el puntero interno del array.
prev() se comporta como next(), a excepción de que rebobina el puntero interno del array una posición en lugar de avanzar.
Parámetros
- array
-
El array de entrada.
Valores devueltos
Devuelve el valor del array en la posición anterior que está apuntado por el puntero interno del array o FALSE si no hay más elementos.
Ejemplos
Example #1 Ejemplo de uso de prev() and friends
<?php
$transport = array('pie', 'bici', 'coche', 'avión');
$mode = current($transport); // $mode = 'pie';
$mode = next($transport); // $mode = 'bici';
$mode = next($transport); // $mode = 'coche';
$mode = prev($transport); // $mode = 'bici';
$mode = end($transport); // $mode = 'avión';
?>
Notas
Esta función quizá devuelve Boolean FALSE, pero quizá también devuelve un valor non-Boolean que se evaluará como FALSE, como 0 o "". Por favor lea la sección en Booleans para más información. Use el operador === para testear el valor devuelto por esta función.
Note: No hay manera de distinguir el inicio de un array de un elemento de tipo FALSE boolean. Para recorrer adecuadamente que puede contener elementos FALSE ver la función each().
Ver también
- current() - Devuelve el elemento actual en un array
- end() - Establece el puntero intero de un array a su último elemento
- next() - Avanza el puntero interno de un array
- reset() - Establece el puntero interno de un array a su primer elemento
- each() - Devolver el par clave/valor actual de un array y avanzar el cursor del array
// example of backward iteration
$ar = array ( 'a', 'b', 'c', 'd', 'e', 'f') ;
print_r($ar);
end($ar);
while($val = current($ar)) {
echo $val.' ';
prev($ar);
}
