程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php foreach循環用法介紹

php foreach循環用法介紹

編輯:關於PHP編程

在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進行遍歷:

 代碼如下 復制代碼 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);
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved