【问题标题】:PHP get last iteration foreach loop valuePHP获取最后一次迭代foreach循环值
【发布时间】:2011-01-17 02:46:06
【问题描述】:

好的,我有一个 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

有没有办法将当前迭代的键作为上次的数据?

【问题讨论】:

    标签: php arrays loops iteration


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

    或者应该有这样的效果。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        我不确定我是否很好地理解了你的问题.. 但看起来您需要数组中的最后一项...有一些方法可以从数组中获取第一个/最后一个项,而无需遍历它们。

        $last_item = end($array);
        

        看看php manual 的例子..

        【讨论】:

          【解决方案4】:

          这些问题令人困惑。

          在 foreach() 循环中,最后的迭代值仍然在您的 $key 和 $data 变量中,直到它们被更改。

          【讨论】:

            【解决方案5】:

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

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

            【讨论】:

              最近更新 更多