I have a result from a SQL query stored inside $assignmentsViewList:
Array
(
[0] => Array
(
[assign_id] => 302
[ClassCount] => 25
)
[1] => Array
(
[assign_id] => 303
[ClassCount] => 25
)
[2] => Array
(
[assign_id] => 325
[ClassCount] => 25
)
)
When I use it inside a foreach to change the value of ClassCount:
foreach ($assignmentsViewList as $task) {
$task['ClassCount'] = 2;
}
It doesn't work. But if I try this:
$assignmentsViewList[0]['ClassCount']=2;
The code works well. But I need it to work inside the foreach loop.
In order to be able to directly modify array elements within the loop precede $task with &. In that case the value will be assigned by reference.
Reference: PHP foreach()
Try this:
foreach ($assignmentsViewList as &$task) {
$task['ClassCount'] = 2; /* It will overwrite all 'ClassCount' values to 2 */
}
use &
.
Its means iterated over references to actual values of array &$task
foreach ($assignmentsViewList as &$task)
{
$task['ClassCount'] = 2; values of array
}
without & means its iterated over copy of array value.so its not overwrite your array.