在對陣列做迴圈的時候,foreach 會額外複制一份陣列再做迴圈的動作,也意味著不會變動原來陣列內部指標的位置
foreach 有2種結構語法的方式,如下範例印出的結果會相同
$arr = array("one", "two", "three");
foreach ($arr as $value){echo $value;}
foreach ($arr as $key => $value){echo $value;}
//兩者的差別在於 $key 的變數會是索引值(由0開始的數字),若無抓取的需求,則使用第一種即可
若陣列有自定義索引值,則可使用第二種方式取出使用
$arr = array("A"=>"one", "B"=>"two", "C"=>"three");
foreach ($arr as $key => $value){
if ($key=="A" || $key=="B"){echo $value;}
}
//此範例只會印出 one 與 two
對於二維以上陣列的處理方式,可以使用巢狀式的寫法
以下使用二維陣列來舉例,三維…以上則依此類推
$arr[0][0] = "00";
$arr[0][1] = "01";
$arr[1][0] = "10";
$arr[1][1] = "11";
$arr[2][0] = "20";
$arr[2][1] = "21";
foreach($arr as $a1) {
foreach ($a1 as $a2) {
echo $a2;
}
}
//結果會依序印出二維陣列的內容