2

如何在不更改其内部指针的情况下获取数组的最后一个元素?

我正在做的是:

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)会把事情搞砸。

4

4 回答 4

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++;
}
?>
于 2012-12-15T10:00:30.957 回答
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);  
    }  
}
于 2012-12-15T10:15:59.790 回答
1

为什么不使用类似的东西:

$lastElement= end($array);
reset($array);
while(list($key, $value) = each($array)) {  
    //do stuff   
}

// Do the extra stuff for the last element
于 2012-12-15T10:22:23.443 回答
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;
    }  
}

这里的问题是,如果数组很大,那么反转它需要一些时间。

于 2012-12-15T10:11:45.057 回答