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 — Cofnij wewnętrzny wskaźnik tablicy
Opis
Zwraca wartość z tablicy z miejsca poprzedniego od tego na które wskazywał
wewnętrzny wskaźnik pliku, lub FALSE jeśli nie ma już więcej elementów.
Ta funkcja może
zwrócić Boolean FALSE, ale może też zwrócić wartość innego typu niż Boolean, która oznacza
wartość FALSE, takie jak 0 lub
"". Aby uzyskać więcej informacji proszę zapoznać się z rozdziałem Typy logiczne.
Można używać operatora ===
do testowania zwracanych wartości przez tę
funkcję.
Informacja: Nie będziesz mógł odróznić początku tablicy od elementu
FALSEtypu bool'owskiego. Aby poprawnie przejść przez tablicę, która może zawierać elementyFALSE, zobacz funkcję each().
prev() zachowuje się tak jak next(), z tym że cofa wewnętrzny wskaźnik tablicy o jeden element do tyłu, zamiast przesuwać go do przodu.
Przykład #1 Przykład użycia funkcji prev() i podobnych
<?php
$transport = array('stopa', 'rower', 'samochód', 'samolot');
$tryb = current($transport); // $tryb = 'stopa';
$tryb = next($transport); // $tryb = 'rower';
$tryb = next($transport); // $tryb = 'samochód';
$tryb = prev($transport); // $tryb = 'rower';
$tryb = end($transport); // $tryb = 'samolot';
?>
// 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);
}
