PHP数组:如何添加'key&值'到现有数组

时间:2016-05-20 10:24:24

标签: 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)

现在,我想在每个数组的所有元素之后插入数组('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’

请注意,我添加了'color'=>所有索引都“红色”

2 个答案:

答案 0 :(得分:6)

这样做:Working demo

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

foreach($arr as $key => &$val){
    $val['color'] = 'red';
}

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

  • 避免回写,只需使用完整数组表达式在循环内写入值;
  • 不要在同一范围内重复使用$val变量,即使是另一个foreach()循环也是如此;
  • unset()变量上使用$val将其与要写回的阵列断开连接。

答案 1 :(得分:1)

foreach($arr as $key => $row){
  $arr[$key]['color']="red";
}
相关问题