PHP--陣列--foreach用法
阿新 • • 發佈:2018-11-13
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的指標就直接指向陣列中的單元了。