以下方法有什么不同吗?
$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";
}
list
从current
元素开始迭代,而foreach
从first
元素开始迭代。
如果您已经迭代了array
,list
将从上一次迭代的下一个元素开始。如果要从第一个元素开始迭代,则需要reset
和array
。
就我而言,没有。除了foreach()函数看起来更干净之外。
each()
会记住它在数组中的位置,因此如果不使用reset()
,则可能会错过项目。
reset($array);
while(list($key, $value) = each($array))
值得一提的是,这种数组遍历方法是古老的,已经被更惯用的foreach所取代。我不会使用它,除非你特别想利用它一次一项的特性。
array每个(array&$array)
从数组中返回当前键和值对,并将数组光标。
each()执行后,数组光标将留在下一个元素,或者如果最后一个元素到达数组。如果要遍历数组,必须使用reset()再次使用每个。
阅读此链接了解更多解释。