Foreach与list-each在PHP中

时间:2015-10-28 11:54:50

标签: php arrays loops

以下方法有什么不同吗?

$fruit = array(
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cranberry'
);

// List-each method
reset($fruit);
while (list($key, $val) = each($fruit)) {
    echo "$key => $val\n";
}

// foreach method
foreach ($fruit as $key => $value) {
    echo "$key => $val\n";
}

3 个答案:

答案 0 :(得分:1)

listcurrent元素开始迭代,而foreachfirst元素开始。

如果您已经迭代了arraylist将从上一次迭代的下一个元素开始。如果要从第一个元素进行迭代,则需要reset array

答案 1 :(得分:0)

就我而言,没有。除了foreach()函数看起来更清洁imo。

答案 2 :(得分:0)

each()会记住它在阵列中的位置,所以如果你不reset()它就会错过物品。

reset($array);
while(list($key, $value) = each($array))

值得注意的是,这种数组遍历的方法很古老,并且被更惯用的foreach所取代。我不会使用它,除非你特别想要利用它的一次性项目。

  

数组每个(数组& $数组)

     

从数组中返回当前键和值对并前进   数组游标。

     

执行each()后,数组光标将保留在下一个   数组的元素,如果它到达结尾,则超过最后一个元素   数组。如果要遍历数组,则必须使用reset()   再次使用每个。

请阅读此link以获取更多说明。