如何在不更改内部指针的情况下获取数组的最后一个元素?
我在做的是:
while(list($key, $value) = each($array)) {
//do stuff
if($condition) {
//Here I want to check if this is the last element of the array
prev($array);
}
}
所以end($array)
会搞砸。
答案 0 :(得分:2)
试试这个:
<?php
$array=array(1,2,3,4,5);
$totalelements = count($array);
$count=1;
while(list($key, $value) = each($array)) {
//do stuff
if($count == $totalelements){ //check here if it is last element
echo $value;
}
$count++;
}
?>
答案 1 :(得分:2)
这很简单,你可以使用:
$lastElementKey = end(array_keys($array));
while(list($key, $value) = each($array)) {
//do stuff
if($key == $lastElementKey) {
//Here I want to check if this is the last element of the array
prev($array);
}
}
答案 2 :(得分:1)
为什么不使用以下内容:
$lastElement= end($array);
reset($array);
while(list($key, $value) = each($array)) {
//do stuff
}
// Do the extra stuff for the last element
答案 3 :(得分:0)
这样的事情:
$array = array_reverse($array, true);
$l = each($array);
$lastKey = $l['key'];
$array = array_reverse($array, true);
while(list($key, $value) = each($array)) {
//do stuff
if($key == $lastKey) {
echo $key . ' ' . $value . PHP_EOL;
}
}
这里的问题是,如果阵列很大,那么它需要一些时间来逆转它。