2016-10-05 91 views
0

我從存儲$ assignmentsViewList內的SQL查詢的結果從查詢結果更改值:PHP - 使用的foreach

Array 
(

    [0] => Array 
    (
     [assign_id] => 302 
     [ClassCount] => 25 
    ) 

    [1] => Array 
    (
     [assign_id] => 303 
     [ClassCount] => 25 
    ) 

    [2] => Array 
    (
     [assign_id] => 325 
     [ClassCount] => 25 
    ) 

) 

當我使用一個foreach內改變ClassCount值:

foreach ($assignmentsViewList as $task) { 
    $task['ClassCount'] = 2; 
} 

它不起作用。但如果我試試這個:

$assignmentsViewList[0]['ClassCount']=2; 

該代碼運行良好。但我需要它在foreach循環中工作。

+0

你到底想要達到什麼目的?你想更新所有'ClassCount'值嗎?還是隻有一個? –

+0

我正在改變所有的ClassCount值。 –

+0

請看看我的答案。它應該解決你的目的。 –

回答

2

爲了能夠直接修改$ task中的數組元素,使用&。在這種情況下,該值將通過引用進行分配。

參考:PHP foreach()

試試這個:

foreach ($assignmentsViewList as &$task) { 
    $task['ClassCount'] = 2; /* It will overwrite all 'ClassCount' values to 2 */ 
} 
+0

我以前見過這個'&',但我不知道修改時需要這個。謝謝。 –

1

use &

其手段遍歷引用數組&$task

foreach ($assignmentsViewList as &$task) 
{ 
    $task['ClassCount'] = 2; values of array 
} 

的實際值,而不會&意味着其對陣列的複製value.so它不會覆蓋你的陣列迭代。

take a look in documentation