在php中foreach 語句用于循環遍歷數組,每進行一次循環,當前數組元素的值就會被賦值給value 變量(數組指針會逐一地向下移動)例代碼如下:
- <?php
- /* php foreach循環簡單例子 */
- $a = array('a'=>'網上','b'=>'朋友','c'=>'其它',);
- // 這是一個hash數組,我們現在把內容輸出
- foreach ($a as $key => $value) {
- echo $key . '->' . $value . '<br>';
- }
- ?>
- <?php
- $a = array('a'=>'網上','b'=>'朋友','c'=>'其它',);
- ?>
開始運行foreach第一次,這時 $key='a';$value='網上'; 輸出后第二次運行 這時 $key='b';$value='朋友'; 輸出后第三次運行 這時 $key='c';$value='其它'; 這時數組已經到了尾部,退出循環.
例代碼如下:
- <?php
- 1,"two"=>2,"three"=>3,"four"=>4);
- foreach($array1 as $key=>$value)
- {echo "KEY:$key value: $value n";}
- $array2=array(5,6,7,8);
- foreach($array2 as &$value)
- {
- $value=$value*2;
- echo "$valuen";
- }
- ?>
- //結果是
- $array1=array("one"=>1,”two”=>2,”three”=>3,”four”=>4);
- foreach($array1 as $key=>$value)
- {echo “KEY:$key value: $value n”;}
- $array2=array(5,6,7,8);
- foreach($array2 as &$value)
- {
- $value=$value*2;
- echo “$valuen”;
- }
- ?>
為了便于理解,我們假定這里的$array是一個一維的相關數組,$key是數組的索引,$value是這個索引的值,它們的名字可以隨意,之所以叫$key和$value是為了便于理解,為了能讓你更好的理解foreach的工作過程,我們來創建一個數組:
$array = array('first'=>'ibm','second','hp');
現在我們模擬PHP服務用foreach對$array進行遍歷,代碼如下:
- foreach ($array as $key=>$value)
- {
- echo $key.'=>'$value;
- }
第一次循環,$key = 'first',$value = 'ibm',這個時候,實際foreach對$array執行了一個我們看不見的操作.
foreach循環中使用引用要注意,發現了一個容易出錯,但是不懂得原理卻解釋不明白的問題,代碼如下:
- foreach ($array as &$row) {
- $row = explode(‘/’, $row);
- }
- foreach ($array as $row) {
- //do something
- }
這么寫,在第二個循環會出邏輯錯誤,加入第二個循環中do something的地方是輸出$row,循環到最后一個的時候的輸出是倒數第二個元素,而不是最后一個,要這么寫,代碼如下:
- foreach ($array as &$row) {
- $row = explode(‘/’, $row);
- }
- unset($row);
- foreach ($array as $row) {
- //do something
- }
- //或者第一個循環這么寫
- foreach ($array as $key => $row) {
- $array[$key] = explode(‘/’, $row);
- }
新聞熱點
疑難解答