foreach在數組用得比較多。不過要注意幾點:
1、foreach遍歷數組的順序是由前至後,當 foreach 開始執行時,數組內部的指針會自動指向第一個單元。循環運行到結束,拷貝數組與原數組的內部指針都將指向數組的結尾。
實驗:
$switching = array( 'a'=>10,
'b'=>11,
'c'=>12
);
foreach($switching as $newswitch) { }
print_r($newswitch);
輸出結果:12,遍歷結束,指針指到最後一單元12(foreach (array_expression as $value)遍歷形式並不拷貝鍵值)。
2、遍歷的兩種形式
分別是:
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
第一種形式只傳遞值,第二種傳遞鍵和值。
實驗:
還是上例switching數組,下面表達式改為:
$test = array();
$test[] = $newswitch;
}
print_r($test);
輸出:Array ( [0] => 10 [1] => 11 [2] => 12 ) ,可以看出新數組並沒有繼承原數組鍵值。因為這種表達式只說明把array_expression的值傳遞給$value。
實驗:
原數組還是switching,下部表達式改為:
$test = array();
foreach($switching as $k=>$v) {
$test[$k] = $v;
}
print_r($test);
輸出:Array ( [a] => 10