PHP foreach/for/while循環的比較

<?php
header('Content-Type: text/plain; charset=utf-8');
$arr = array('Apple','Boy','Car','Dog');
foreach($arr as $v) {
	echo $v.' ';
}
echo "\n";
$c = count($arr);
for($i=0;$i<$c;$i++) {
	echo $arr[$i].' ';
}
echo "\n";
$arr = array(
	'My'=>'Apple',
	'Your'=>'Boy',
	'His'=>'Car',
	'Her'=>'Dog'
);
foreach($arr as $k => $v) {
	echo $k.' '.$v."\n";
}
循環數字數組時,for須要事先count($arr)計算數組長度,須要引入自增變量$i, 每次循環都要進行條件判斷$i<$c,而後自增$i++,輸出數組元素時,$arr[$i]須要進行哈希操做. 而foreach循環數組時,指針會自動指向下一個元素, 不須要計算數組長度,沒有條件判斷和自增變量,調用元素時也沒有哈希操做,因此性能確定要比for和while高. 另外,for和while對存在鍵值映射的關聯數組無能爲力.因此,遍歷數組,首選foreach. foreach也是我PHP裏最喜歡的關鍵字,由於它確實強大. array_map/array_filter/array_walk遍歷數組的方式和foreach同樣,但須要執行回調函數,因此也比foreach慢. 數組循環用foreach,知道循環次數通常用for,條件循環時則用while. 另外,foreach也能夠用來遍歷對象元素.
相關文章
相關標籤/搜索