PHP foreach 語法結構
foreach ( 陣列 as $value )
...some code...
foreach ( 陣列 as $key => $value )
...some code...
以上語法結構有兩個,第一個是比較簡單的寫法,每次循環的時候,foreach 會直接將陣列值存放到 $value 中,且將指向陣列的指針向前一歩,讓下次循環的時候能夠執行下一個陣列值,聽起來有點複雜,但原理很簡單,就是類似迴圈的概念,第二個寫法做的是同樣的事情,差別在於多增加了把 array key 同時存放於 $key 之中,以方便後續的調用。...some code...
foreach ( 陣列 as $key => $value )
...some code...
PHP foreach 實作範例
<?php
$Arr=array( "蘋果" , "香蕉" , "芭樂" );
foreach ($Arr as $value ){
echo 'value='.$value.'<br>';
}
echo '<br>';
foreach ($Arr as $key => $value) {
echo 'key='.$key.' ; value='.$value.'<br>';
}
?>
輸出結果$Arr=array( "蘋果" , "香蕉" , "芭樂" );
foreach ($Arr as $value ){
echo 'value='.$value.'<br>';
}
echo '<br>';
foreach ($Arr as $key => $value) {
echo 'key='.$key.' ; value='.$value.'<br>';
}
?>
value=蘋果
value=香蕉
value=芭樂
key=0 ; value=蘋果
key=1 ; value=香蕉
key=2 ; value=芭樂
範例中我們先設定了一個陣列 $Arr,其中有三個數值分別是蘋果、香蕉以及芭樂,接著透過 foreach 來顯示陣列值,直接就可以將 $Arr 的陣列值輸出來,完全不用像 for 迴圈還要寫 $i 去跑,是不是簡單多了呢?第二個範例採用了 $key 的技巧,將原本的 array key 值同時存放在變數 $key 之中,然後與 $value 一起輸出,從範例的輸出結果可以發現 key 從 0 開始,因為陣列本身預設的 array key 就是從 0 開始編排的。另外,使用 foreach 雖然很簡單就可以將陣列跑出來,但也不是完全沒有風險,當你的陣列非常龐大,直接用 foreach 跑可能不是很理想,為了避免跑到超過系統負荷而當機,在測試的時候可以使用 PHP break 的技巧,設定跳出 foreach 迴圈的條件比較好。value=香蕉
value=芭樂
key=0 ; value=蘋果
key=1 ; value=香蕉
key=2 ; value=芭樂
備註、最後一次跑完 foreach 的 $value 值還是會存在,可以使用 unset 函式將其清空。
延伸閱讀