在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='其它';
這時數組已經到了尾部,退出循環
例
<?
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進行遍歷:
第一次循環,$key = 'first',$value = 'ibm',這個時候,實際foreach對$array執行了一個我們看不見的操作
foreach循環中使用引用要注意
發現了一個容易出錯,但是不懂得原理卻解釋不明白的問題
代碼如下 復制代碼 foreach ($array as &$row) {這麼寫,在第二個循環會出邏輯錯誤,加入第二個循環中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);
}