如何添加密钥=>;value元素添加到每个subArray的开头


How can I add a key => value element to the start of each subArray?

所以我最近参与了这个学校项目,现在我必须用PHP处理多维数组。我的问题:

我有一个数组:

$arr = array(
           array('subject' => 'Deutsch'), 
           array('subject' => 'Deutsch'),  
           array('subject' => 'Deutsch')
       );

现在我想让它看起来像:

数组(数组("id"=>1,"subject"=>"Deutsch"),数组("id"=>2,"subject"=>"Deutsch"),数组("id"=>3,"subject"=>"Deutsch"));

我想做一些类似的事情:

foreach ($arr as $key => $value) {
    array_unshift($arr, array('id' => $key + 1));
}

但这并没有给我带来预期的产出。如何修改代码以达到目标?

您可以array_merge()每个子数组的id,例如

foreach ($arr as $key => $value) {
    $arr[$key] = array_merge(["id" => $key + 1], $value);
}

您可以通过引用来提交数组,并添加id元素:

foreach($arr as $key => &$val)
{
  $val['id'] = $key +1;
}