以下方法有什么不同吗?
$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";
}
答案 0 :(得分:1)
list
从current
元素开始迭代,而foreach
从first
元素开始。
如果您已经迭代了array
,list
将从上一次迭代的下一个元素开始。如果要从第一个元素进行迭代,则需要reset
array
。
答案 1 :(得分:0)
就我而言,没有。除了foreach()函数看起来更清洁imo。
答案 2 :(得分:0)
each()
会记住它在阵列中的位置,所以如果你不reset()
它就会错过物品。
reset($array);
while(list($key, $value) = each($array))
值得注意的是,这种数组遍历的方法很古老,并且被更惯用的foreach所取代。我不会使用它,除非你特别想要利用它的一次性项目。
数组每个(数组& $数组)
从数组中返回当前键和值对并前进 数组游标。
执行each()后,数组光标将保留在下一个 数组的元素,如果它到达结尾,则超过最后一个元素 数组。如果要遍历数组,则必须使用reset() 再次使用每个。
请阅读此link以获取更多说明。