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 — Retrocede o ponteiro interno de um array
Descrição
Retrocede o ponteiro interno do array.
prev() funciona como next(), exceto que ela retrocede o ponteiro interno do array ao invés de avançá-lo.
Parâmetros
- array
-
O array de entrada.
Valor Retornado
Retorna o valor do array que está na posição anterior à posição apontada pelo ponteiro interno, ou FALSE se não houver mais elementos.
Exemplos
Exemplo #1 Exemplo de uso de prev() e funções relacionadas
<?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';
?>
Notas
Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função.
Nota: Você não conseguirá distinguir o começo de um array de um elemento boolean FALSE. Para corretamente percorrer um array que pode conter elementos FALSE, veja a função each().
Veja Também
- current() - Retorna o elemento corrente em um array
- end() - Faz o ponteiro interno de um array apontar para o seu último elemento
- next() - Avança o ponteiro interno de um array
- reset() - Faz o ponteiro interno de um array apontar para o seu primeiro elemento
- each() - Retorna o par chave/valor corrente de um array e avança o seu cursor
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);
}
