2015-10-28 97 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