Is there an SPL Reverse array iterator in PHP? And if not, what would be the best way to achieve it?
I could simply do
$array = array_reverse($array)
$array1= array(10,20,30,40,50);
for($i = count($array1) - 1; $i >= 0; $i--)
{
$array2[] = $array1[$i];
}
echo "<pre>";
print_r($array2);
echo "</pre>";
$item=end($array);
do {
...
} while ($item=prev($array));
Note that if you want to preserve the keys of the array, you must pass true
as the second parameter to array_reverse
:
$array = array_reverse($array, true);
foreach ($array as $currentElement) {
// do something here
}
This could be a more performant way since it doesnt construct a new array. It also handles empty arrays well.
$item = end($items);
while($item)
{
...do stuff...
$item = prev($items);
}
$array = array_reverse($array);
foreach($array as $key => $currentElement) {}
This is better way to use. It will take care of keys also, if they are not sequential or integer.