关联数组的数组,向关联数组添加新元素

Hom*_*ith 4 php arrays associative-array

如果我有这样的数组:

array(2) {
  [0]=>
  array(2) {
    ["id"]=>
    string(2) "34"
    ["total"]=>
    string(6) "122337"
  },
[1]=>
  array(2) {
    ["id"]=>
    string(2) "43"
    ["total"]=>
    string(6) "232337"
  }
}
Run Code Online (Sandbox Code Playgroud)

我想为每个子数组添加一个新的键值,例如,它会像这样结束:

array(2) {
      [0]=>
      array(2) {
        ["id"]=>
        string(2) "34"
        ["total"]=>
        string(6) "122337"
        ["newkey"]=>
        string(6) "hihihi"
      },
    [1]=>
      array(2) {
        ["id"]=>
        string(2) "43"
        ["total"]=>
        string(6) "232337"
       ["newkey"]=>
        string(6) "hihihi"
      }
    }
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

我试过像这样的foreach:

foreach($exterior_array as $inside_array) {
 $inside_array['newkey'] = "hihihi";
}
Run Code Online (Sandbox Code Playgroud)

但是一旦进入foreach,值就不会被保存.

hak*_*kre 5

foreach($exterior_array as $inside_array) {
    $inside_array['newkey'] = "hihihi";
}
Run Code Online (Sandbox Code Playgroud)

但是一旦进入foreach,值就不会被保存.

那是因为你正在处理数组的副本$inside_array.您可以通过创建原始值$inside_array的别名来访问要更改的"orignal" 值; 使用参考:

foreach($exterior_array as &$inside_array) {
                           ^- set the reference
    $inside_array['newkey'] = "hihihi";
}
unset($inside_array);
^^^^^^^^^^^^^^^^^^^^^- remove the reference
Run Code Online (Sandbox Code Playgroud)

http://php.net/foreach比较