PHP得到最后一次迭代foreach循环值

时间:2010-02-15 18:54:57

标签: php arrays loops iteration

好的我有一个foreach循环,想知道我是否能获得当前迭代的最后一个迭代数据值?

代码:

foreach($array as $key=>$data) {
   echo "Key: ".$key." Data: ".$data."<br />";
}

结果:

Key: 0 Data: 23244
Key: 0 Data: Program ID: 39-1-1499-1

我想要的结果:

Key: 23244 Data: Program ID: 39-1-1499-1

有没有办法将当前迭代的密钥作为最后一个数据?

5 个答案:

答案 0 :(得分:6)

我不确定我是否理解你的问题..但看起来你需要数组中的最后一项......有办法从数组中获取第一个/最后一个项而不必迭代它们。

$last_item = end($array);

查看php manual示例..

答案 1 :(得分:5)

$i=0;
foreach($array as $key=>$data) {
   if($i%2 == 0){ echo "Key: ".$data;}
   else{ echo "Data: ".$data."<br />";}
   $i++;
}

或者那种效果应该起作用。

值得注意的是,修复问题的根源(数组)可能更好,以便以正确的格式输出,您可以使用原始代码而不是此解决方法。

答案 2 :(得分:2)

数组的第一个和最后一个元素:

foreach($array as $element) {
    if ($element === reset($array))
        echo 'FIRST ELEMENT!';

    if ($element === end($array))
        echo 'LAST ELEMENT!';
}

答案 3 :(得分:0)

您可能不希望使用foreach循环但使用函数调用。我不完全了解您的数据结构,因为键0似乎分配了两个不同的值,您能否详细解释一下?

答案 4 :(得分:0)

这些问题令人困惑。

在foreach()循环中,最后一次迭代值仍在$ key和$ data vars中,直到它们被更改。