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

PHP Arrays: How to add 'key & value' to an existing array

我不知道如何向现有数组添加键和值。我的阵列是这样的。最初我尝试使用 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' => 'red' 添加到所有索引

只需这样做:Working demo

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

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

请注意,即使在循环结束后,和号的 'write-back' 特性仍然存在:将 $val 重置为新值将更改 $val 中的最后一个元素,这通常是意外。解决此 class 错误的三种方法:

  • 避免回写,只使用完整的数组表达式在循环内写入值;
  • 不要在同一范围内重复使用 $val 变量,即使是另一个 foreach() 循环;
  • $val 变量上使用 unset() 断开它与它将写回的数组的连接。
foreach($arr as $key => $row){
  $arr[$key]['color']="red";
}