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

时间:2015-12-12 23:14:27

标签: php arrays multidimensional-array

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

我有一个数组:

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

现在我想让它看起来像:

array(
    array('id' => 1, 'subject' => 'Deutsch'),   
    array('id' => 2, 'subject' => 'Deutsch'),  
    array('id' => 3, 'subject' => 'Deutsch')
);  

我想做类似的事情:

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

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

2 个答案:

答案 0 :(得分:1)

你可以array_merge()每个subArray的id,例如

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

答案 1 :(得分:0)

您可以通过引用来迭代数组并添加id元素:

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