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 — Премества вътрешния указател на масива с една позиция назад
Описание
Премества вътрешният указател на масива.
prev() работи точно кактоnext(), с тази разлика, че премества вътрешния указател на масива с една позиция назад, вместо напред.
Параметри
- array
-
Входният масив.
Връщани стойности
Връща стойността на елемента на масива, намиращ се на позиция, предшестваща позицията, на която се намира вътрешния му указател или FALSE, ако е достигнато началото на масива.
Примери
Example #1 Пример за prev() и други свързани с нея функции
<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = next($transport); // $mode = 'car';
$mode = prev($transport); // $mode = 'bike';
$mode = end($transport); // $mode = 'plane';
?>
Бележки
Тази функция може да върне булева стойност FALSE, но може също да върне небулева стойност, която се интерпретира като FALSE, като 0 или "". Вижте раздел Булев тип за повече информация. Използвайте оператора === за проверка на връщаната стойност от тази функция.
Забележка: Не е възможно да се разграничи края на масива от булев елемент със стойност FALSE. За да обходите правилно масив, който съдържа елементи със стойност FALSE, вижте функция each().
Вж. също
- current() - Връща текущия елемент на масива
- end() - Установява вътрешния указател на масива на последния му елемент
- next() - Премества вътрешния указател на масива с една позиция напред
- reset() - Установява вътрешния указател на масива на първия му елемент
- each() - Връща текущата двойка ключ/стойност на масива и премества указателя му
prev
29-May-2009 07:06
29-Sep-2007 07:19
// 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);
}
