小預算改造推薦!銷售各式壁紙、壁布等產品
輕鬆變換空間氛圍,質感設計花色多
通水管提供種類豐富的門窗樣式,氣密窗、採光罩、玻璃屋等
解決噪音困擾,享受寧靜

首頁  •  tw 論壇 • 程式設計討論     • 

[php] PHP函數:foreach函數

房東:jeff
發表時間:2011-11-15
[檢舉]


PHP函數:foreach函數



最近在工作的時候,發覺PHP5中文手冊上有蠻多函數都還沒被翻譯,想說有查到這函數就順便翻譯一下,如果翻譯不好請各位看官見諒!!

以後如果有遇到沒有翻譯的函數我會替大家翻譯一下!!


foreach


php 4引入了foreach結構,很像perl和其他一些語言。這只是一種簡單的方法來查閱\陣列。

foreach僅能用於陣列,當你嘗試用它的一個變數與不同的數據型態或者一個未初始化的變數,並會發出一個錯誤。

有兩種語法;第二種次要但卻是第一種的有用的延伸:


foreach (陣列表示 as $value)

    陳述方式


foreach (陣列表示 as $key => $value)

    陳述方式





第一種格式重複給定的數組陣列。每次循環中,當前單元的值賦給$價值和數組內部的指針向前移一步(因此下一次循環中,你將看到下一個單元) 。


第二種格式做同樣的事,只除了當前單元的鍵名,每次循環中將被分配到變量$ key。


對於php 5起,還可能重複對象。


注1:當foreach開始執行時,數組內部的指針會自動復位到第一個單元。這意味著foreach循環之前你不需要調用reset ( ) 。


注2:除非數組是被引用, foreach所操作的一個拷貝指定數組而不是該數組本身。因此數組指針不會被修改為與每個( )結構改變,以對返回的數組單元並沒有反映在原數組。然而,內部指針的原數組的過程中向前移動數組。假定foreach循環運行到結束,原數組的內部指針將設在數組的結尾。


截至php 5中,你可以輕易修改數組的元素前款元價值與& 。此方法將以引用賦值而不是拷貝一個值。



$arr = array(1, 2, 3, 4);

foreach ($arr as &$value) {

    $value = $value * 2;

}

// $arr is now array(2, 4, 6, 8)

unset($value); // break the reference with the last element

?>


這是僅在被遍歷的數組可以被引用(即是個變量) 。


警告


參考$value,以及最後的陣列元素仍然即使經過foreach循環。因此推薦unset ( )摧毀它了 。


注:foreach不支持的能力,抑制錯誤信息的用\' @ \' 。


你可能注意到了以下的代碼功\能完全相同:



$arr = array("one", "two", "three");

reset($arr);

while (list(, $value) = each($arr)) {

    echo "Value: $value

n";

}


foreach ($arr as $value) {

    echo "Value: $value

n";

}

?>

The following are also functionally identical:


$arr = array("one", "two", "three");

reset($arr);

while (list($key, $value) = each($arr)) {

    echo "Key: $key; Value: $value

n";

}


foreach ($arr as $key => $value) {

    echo "Key: $key; Value: $value

n";

}

?>


Some more examples to demonstrate usages:



/* foreach例子1: value only */


$a = array(1, 2, 3, 17);


foreach ($a as $v) {

   echo "Current value of $a: $v.n";

}


/* foreach例子2 : value (with key printed for illustration) */


$a = array(1, 2, 3, 17);


$i = 0; /* 僅作說明之用 */


foreach ($a as $v) {

    echo "$a[$i] => $v.n";

    $i++;

}


/* foreach例子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例子4 :多維陣列 */

$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 "$v2n";

    }

}


/* foreach例子5 :動態陣列 */


foreach (array(1, 2, 3, 4, 5) as $v) {

    echo "$vn";

}

?>






  • 贊助網站       

    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!
    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務



  •  共 0 人回應

    姓名:
    佈告內容: