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

PHP foreach循環使用詳解與實例代碼

編輯:關於PHP編程

foreach基本語法如下:
FOREACH ($array_variable as $value)
{
[code to execute]
}
or
FOREACH ($array_variable as $key => $value)
{
[code to execute]
}
在這兩種情況下,多次[代碼執行]將被處死是等於在$ array_variable數組元素的個數。
讓我們來看一個例子。假設我們有下面的代碼段:
復制代碼 代碼如下:
$array1 = array(1,2,3,4,5);
FOREACH ($array1 as $abc)
{
print "new value is " . $abc*10 . "<br>";
}

輸出結果
new value is 10
new value is 20
new value is 30
new value is 40
new value is 50
foreach循環以上經歷了所有5個元素的數組$ array1,每次打印出一份聲明中含有10倍的數組元素的值。
foreach作用是遍歷當前數組的所有值出來並且賦給$var
官方給出的實例代碼:
復制代碼 代碼如下:
<?php
/* foreach example 1: value only */
$a = array(1, 2, 3, 17);
foreach ($a as $v) {
echo "Current value of \$a: $v.\n";
}
/* foreach example 2: value (with key printed for illustration) */
$a = array(1, 2, 3, 17);
$i = 0; /* for illustrative purposes only */
foreach ($a as $v) {
echo "\$a[$i] => $v.\n";
$i++;
}
/* foreach example 3: key and value */
$a = array(
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => 17
);
foreach ($a as $k => $v) {
echo "\$a[$k] => $v.\n";
}
/* foreach example 4: multi-dimensional arrays */
$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";
foreach ($a as $v1) {
foreach ($v1 as $v2) {
echo "$v2\n";
}
}
/* foreach example 5: dynamic arrays */
foreach (array(1, 2, 3, 4, 5) as $v) {
echo "$v\n";
}
?>

再來看一個foreach 對多維數據操作實例
復制代碼 代碼如下:
$s = array(array(1,2),array(3,4),array(5,6));
foreach( $s as $v => $_v )
{
foreach( $_v as $vc => $_vc )
{
echo $_vc[0],'|'.$_vc[1],'<br />';
//print_r($_vc);
}
}

先來看一下foreach的語法:
復制代碼 代碼如下:
foreach ($array as $key=>$value)
{
……
}

為了便於理解,我們假定這裡的$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執行了一個我們看不見的操作:next($array),將數組指針向前(這裡的“向前”跟PHP手冊相同,不是我們通常所理解的“向前”)移一。然後echo語句輸出"first=>ibm"。
第二次循環,首先會判斷數組$array的當前指針是否已經到了數組的末尾,如果是,結束循環,否則進入第二次循環。當然這樣的判斷在進入第一次循環的時候也會有,如果$array是一個空數組,那麼就會直接執行循環下面的語句。此時,$key = 'second','value' = 'hp',next($array)後,輸出"second=>hp"。然後進行判斷,數組指針已經到達末尾,執行下面的語句。
到這裡你應該對foreach循環有所了解了吧?還有一點需要的是,foreach每次只是傳遞一個值,而不是真的對數組元素進行操作。具體到上面的例子,如果你想在每個數組元素的後面加上 'company' 這個字符串,那麼$value .= 'company'這樣的操作是不行的,它並不會改變數組元素的值,這個時候你應該這樣用:$array[$key] .= 'company';

更多可以參考:php foreach
php foreach、while性能比較
php 循環

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