PHP - 使用foreach更改查询结果中的值

时间:2016-10-05 05:22:18

标签: php foreach

我有一个存储在$ assignmentsViewList中的SQL查询的结果:

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循环中工作。

2 个答案:

答案 0 :(得分:2)

  

为了能够在$ task之前的循环中直接修改数组元素和&amp ;.在这种情况下,该值将通过引用分配。

参考:PHP foreach()

试试这个:

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

答案 1 :(得分:1)

use &

它的意思是迭代对数组&$task

的实际值的引用
 foreach ($assignmentsViewList as &$task)
{
  $task['ClassCount'] = 2;  values of array
}

没有&意味着它迭代了数组值的副本。因此它不会覆盖你的数组。

take a look in documentation