使用PHP反向迭代数组 - SPL解决方案?
PHP中是否有SPL反向数组迭代器?如果没有,实现它的最佳方式是什么?
我可以简单地做
$array = array_reverse($array);
foreach($array as $currentElement) {}
或
for($i = count($array) - 1; $i >= 0; $i--)
{
}
但是有没有更优雅的方式呢?
PHP中是否有SPL反向数组迭代器?如果没有,实现它的最佳方式是什么?
我可以简单地做
$array = array_reverse($array);
foreach($array as $currentElement) {}
或
for($i = count($array) - 1; $i >= 0; $i--)
{
}
但是有没有更优雅的方式呢?
下面是一个不复制也不修改数组的解决方案:
for (end($array); key($array)!==null; prev($array)){
$currentElement = current($array);
// ...
}
如果还需要对当前键的引用:
for (end($array); ($currentKey=key($array))!==null; prev($array)){
$currentElement = current($array);
// ...
}
这总是有效的,因为php数组键永远不会是空的,并且比这里给出的任何其他答案都快。
$item=end($array);
do {
...
} while ($item=prev($array));