PHP foreach

PHP foreach 是用來輸出陣列的一種方式,可以快速的將完成佈署的陣列值輸出到網頁,甚至有的時候比直接使用 for 迴圈while 迴圈還要簡單,foreach 不用寫條件判斷式就可以直接讀取陣列,並直接透過 echo 輸出陣列值,算是一種相當簡易的陣列讀取方式,不過要注意的是 foreach 僅適用於處理陣列,如果拿來處理其他的數據組或是變數結構,很可能會出現錯誤。

PHP foreach 語法結構
foreach ( 陣列 as $value )
 ...some code...

foreach ( 陣列 as $key => $value )
 ...some code...
以上語法結構有兩個,第一個是比較簡單的寫法,每次循環的時候,foreach 會直接將陣列值存放到 $value 中,且將指向陣列的指針向前一歩,讓下次循環的時候能夠執行下一個陣列值,聽起來有點複雜,但原理很簡單,就是類似迴圈的概念,第二個寫法做的是同樣的事情,差別在於多增加了把 array key 同時存放於 $key 之中,以方便後續的調用。

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>';
}
?>
輸出結果
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 迴圈的條件比較好。

備註、最後一次跑完 foreach 的 $value 值還是會存在,可以使用 unset 函式將其清空。

延伸閱讀
© Copyright wibibi.com 網頁設計教學百科 基礎的網頁設計規劃、資料庫與程式設計 Since 2012
PHP Smarty MySQL JQuery Apache W3C