2015-10-28 75 views
0

以下方法有什么区别吗?Foreach vs 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"; 
} 
+0

第二种方法('foreach')更快。 –

+0

哪一个看起来更清洁? –

+1

http://www.phpbench.com/或http://m.metamorphosite.com/php-benchmarks-loops-arrays#Foreach –

回答

0

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

1

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

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

0

each()记得它在阵列中的位置,所以如果你没有reset()它可能会错过物品。

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

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

阵列每个(阵列& $阵列)从阵列

返回当前键和值的对,并推进 阵列光标。

执行完每个()后,数组光标将保留在数组的下一个 元素上,或者在数组的最后一个元素到达 时超出最后一个元素。如果要使用每个数组遍历数组 ,则必须使用reset()。

要了解更多解释,请阅读link