PHP数组引用,修改数组值

时间:2014-11-26 05:42:39

标签: php arrays

我正在尝试在循环时修改数组并增加某些值。

     $data = ['traits' => [[['amt' => 1]]]];
     var_dump($data['traits']);

      foreach ($data['traits'] as $key => &$index) {

        foreach ($index as $key => &$value) {

          $value['amt'] = $value['amt']++; // This should increment

          if (in_array($key, $input)) {
            $i++;
            $insert["field_".$i] = $key."_1";
          }
        }
      }

      var_dump($data['traits']);    // SAME AS PREVIOUS VAR_DUMP

1 个答案:

答案 0 :(得分:1)

你在循环中做的事情是未定义的:

$value['amt'] = $value['amt']++;

结果取决于首先评估的内容。在这种情况下,$value['amt']++似乎首先进行评估,然后再次分配给$value['amt'];增量的副作用就会丢失。

另一方面,以下声明将按预期工作:

$value['amt']++;