2015-12-12 61 views
2

所以我最近進入這個學校項目,現在我不得不處理PHP中的多維數組。我的問題:如何將key => value元素添加到每個子數組的開始處?

我有一個數組:

$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

您可以將array_merge()這個id分配給每個子數組,例如,

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

謝謝,曾與: 的foreach($改編爲$密鑰=> $值){ $ ARR [ $ key] = array_merge(array(「id」=> $ key + 1),$ value); } – Lelsoos

+1

@Lelsoos不客氣。祝你有個美好的一天:) – Rizier123

0

可以itterate通過引用數組,並添加id元素:

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

我認爲,自從OP在他的嘗試中使用'array_unshift()'的順序很重要,所以'id'是每個子數組的第一個元素,但我可能是錯的。 – Rizier123

+0

@ Rizier123是,好點。你可能是對的 – Steve

相關問題