2015-01-15 35 views
1

我需要將兩個數組合併到一個數組中。uniq多維數組

看起來像array_merge不支持多維數組。

課程

Array ( 
[0] => Array ([Name] => Course1 [CourseId] => 1 [Selected] =>) 
[1] => Array ([Name] => Course2 [CourseId] => 2 [Selected] =>) 
[2] => Array ([Name] => Course3 [CourseId] => 3 [Selected] =>) 
[3] => Array ([Name] => Course4 [CourseId] => 4 [Selected] =>) 
[4] => Array ([Name] => Course5 [CourseId] => 5 [Selected] =>) 
) 

TeacherCourses

Array ( 
[0] => Array ([CourseId] => 1 [Selected] => selected) 
[1] => Array ([CourseId] => 2 [Selected] => selected) 
[2] => Array ([CourseId] => 3 [Selected] => selected) 
) 

我需要這個結果

Array ( 
[0] => Array ([Name] => Course1 [CourseId] => 1 [Selected] => selected) 
[1] => Array ([Name] => Course2 [CourseId] => 2 [Selected] => selected) 
[2] => Array ([Name] => Course3 [CourseId] => 3 [Selected] => selected) 
[3] => Array ([Name] => Course4 [CourseId] => 4 [Selected] =>) 
[4] => Array ([Name] => Course5 [CourseId] => 5 [Selected] =>) 
) 
+0

foreach循環足以完成此任務 – Ghost

+0

就像兩個foreach循環一樣嗎? – user4456456

+0

是的,你將不得不使用foreach循環,但不是兩次,只是看看我剛剛發佈的答案:) –

回答

0

您是否嘗試過foreach loop?

在這裏,我們去,:

foreach($arr1 as $key => $value){ 
    foreach($arr2 as $value2){ 
     if($value['CourseId'] === $value2['CourseId']){ 
      $arr1[$key]['Selected'] = $value2['Selected']; 
     }    
    } 
} 

希望這會幫助你。

保留編碼:)

+0

假設'$ arr2'是OP問題中的第二個數組,我會說幾句。當您到達「3」和「4」鍵時,會出現「越界」錯誤。爲什麼要將數組轉換爲數組?最後,爲什麼要將合併數組的結果轉換爲對象? – Havelock

+0

是的,這是關鍵,謝謝Havelock,我已經更新了我的代碼,可能是這可能有助於某人 –

+0

仍然錯誤;)http://codepad.viper-7.com/3qrYWW – Havelock