1. 程式人生 > >PHP--陣列--foreach用法

PHP--陣列--foreach用法

foreach用於陣列:
foreach僅能用於陣列,每次迴圈中,當前單元的鍵名也會在每次迴圈中被賦給變數 $key。當前單元的值被賦給 $value 並且陣列內部的指標向前移一步。

有兩種語法:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

第一種格式遍歷給定的 array_expression 陣列。每次迴圈中,當前單元的值被賦給 $value 並且陣列內部的指標向前移一步(因此下一次迴圈中將會得到下一個單元)。

第二種格式做同樣的事,只除了當前單元的鍵名也會在每次迴圈中被賦給變數 $key。

1、運用foreach可以對數組裡的每一項進行運算,讓每一項都乘以2 

//Example 1:
$array=array(1,2,3);
 
foreach($array as $key => $value){
     $value *= 2;
}
print_r($array);
 
Result:
Array ( [0] => 1 [1] => 4 [2] => 6 )

//Example 2:
$array=array(1,2,3);
 
foreach($array as $key => $value){
     $array[$key] *= 2;
}
print_r($array);
 
Result:
Array ( [0] => 2 [1] => 4 [2] => 6 )

原因:因為foreach()方法中的對$key和$value的賦值為傳值賦值,所以Example 1中直接賦值給$value並沒有真正地改變$array中的值;Example 2中$array[$key]是引用賦值,直接對$array中的資料進行操作,比較容易理解。 

如果想要用$value完成對$array的更改,可以用&$value將賦值方式改為引用賦值,這時變數$value的指標就直接指向陣列中的單元了。