Foreach versus list-each in PHP


Foreach versus list-each in PHP

以下方法有什么不同吗?

$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";
}

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

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

就我而言,没有。除了foreach()函数看起来更干净之外。

each()会记住它在数组中的位置,因此如果不使用reset(),则可能会错过项目。

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

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

array每个(array&$array)

从数组中返回当前键和值对,并将数组光标。

each()执行后,数组光标将留在下一个元素,或者如果最后一个元素到达数组。如果要遍历数组,必须使用reset()再次使用每个。

阅读此链接了解更多解释。