PHP数组:如何将"键和值"添加到现有数组中

Dee*_*nes 1 php arrays key-value array-push

我不知道如何向现有数组添加键和值.我的阵列是这样的.最初我尝试添加使用,array_push()但它添加不是因为我需要它.

在给出'var_dump'后我给出了输出.

array (size=6)
  0 => 
    array (size=3)
     'id' => int 7
      'title' => string 'Pongal' (length=6)
      'start' => string '2016-05-16' (length=10)
  1 => 
    array (size=3)
       'id' => int 8
      'title' => string 'big day' (length=7)
      'start' => string '2016-05-04' (length=10)
  2 => 
    array (size=3)
      'id' => int 9
      'title' => string 'marriage day' (length=12)
      'start' => string '2016-05-19' (length=10)
  3 => 
    array (size=3)
      'id' => int 10
      'title' => string 'Karthiks  bday' (length=14)
      'start' => string '2016-06-11' (length=10)
  4 => 
    array (size=3)
      'id' => int 12
     'title' => string 'Election date announced' (length=23)
      'start' => string '2016-06-01' (length=10)
Run Code Online (Sandbox Code Playgroud)

现在,我想在每个数组的所有元素之后插入数组('sample_key'=>'sample_value').

我该怎么做?这是我希望结果是这样的: -

array (size=6)
  0 => 
    array (size=3)
       'id' => int 7
      'title' => string 'Pongal' (length=6)
       'start' => string '2016-05-16' (length=10)
       ‘color’ => ‘red’
  1 => 
    array (size=3)
      'id' => int 8
      'title' => string 'big day' (length=7)
      'start' => string '2016-05-04' (length=10)
      ‘color’ => ‘red’
  2 => 
    array (size=3)
      'id' => int 9
      'title' => string 'marriage day' (length=12)
      'start' => string '2016-05-19' (length=10)
      ‘color’ => ‘red’
  3 => 
    array (size=3)
      'id' => int 10
      'title' => string 'Karthiks  bday' (length=14)
      'start' => string '2016-06-11' (length=10)
      ‘color’ => ‘red’
  4 => 
    array (size=3)
      'id' => int 12
      'title' => string 'Election date announced' (length=23)
      'start' => string '2016-06-01' (length=10)
      ‘color’ => ‘red’
Run Code Online (Sandbox Code Playgroud)

请注意,我已将'color'=>'red'添加到所有索引中

Mur*_*san 6

就这样做:工作演示

使用&你可以更改主数组,只需用来$val['color'] = 'red'在数组中添加一个新的键值对.

foreach($arr as $key => &$val){
    $val['color'] = 'red';
}
Run Code Online (Sandbox Code Playgroud)

请注意,即使在循环结束后,&符号的"回写"功能仍然存在:重置$val为新值将更改最后一个元素$val,这通常是意外的.这类错误有三种方法:

  • 避免回写,只需使用完整的数组表达式在循环内写入值;
  • 不要$val在同一范围内重用变量,即使是另一个foreach()循环;
  • 使用unset()$val变量从数组会写回到断开.