2015-05-13 135 views
2

合併我有兩個陣列:陣列在PHP

數組1:

array (size=3) 
    0 => 
    array (size=5) 
     'id' => string '11' (length=2) 
     'request_id' => string '3' (length=1) 
     'coach_uin' => string '802877145' (length=9) 
     'date_intervention' => string '2015-06-01 00:00:00' (length=19) 
     'time_slot' => string 'AM' (length=2) 
    1 => 
    array (size=5) 
     'id' => string '12' (length=2) 
     'request_id' => string '3' (length=1) 
     'coach_uin' => string '802310154' (length=9) 
     'date_intervention' => string '2015-06-02 00:00:00' (length=19) 
     'time_slot' => string 'PM' (length=2) 
    2 => 
    array (size=5) 
     'id' => string '13' (length=2) 
     'request_id' => string '3' (length=1) 
     'coach_uin' => string '801777170' (length=9) 
     'date_intervention' => string '2015-06-03 00:00:00' (length=19) 
     'time_slot' => string 'AM' (length=2) 

陣列2:

array (size=3) 
    0 => 
    array (size=9) 
     'user_id' => string '5' (length=1) 
     'user_role' => string 'coach' (length=5) 
     'uin' => string '802877145' (length=9) 
     'manager_uin' => string '607518069' (length=9) 
     'phone' => string '8021111111' (length=10) 
     'ouc' => string 'BVG1C3' (length=6) 
     'email' => string '[email protected]' (length=23) 
     'first_name' => string 'Brendan' (length=7) 
     'last_name' => string 'Kane' (length=4) 
    1 => 
    array (size=9) 
     'user_id' => string '4' (length=1) 
     'user_role' => string 'coach' (length=5) 
     'uin' => string '802310154' (length=9) 
     'manager_uin' => string '607518069' (length=9) 
     'phone' => string '802111111' (length=9) 
     'ouc' => string 'BVG1C3' (length=6) 
     'email' => string '[email protected]' (length=23) 
     'first_name' => string 'Charles' (length=7) 
     'last_name' => string 'McIntosh' (length=8) 
    2 => 
    array (size=9) 
     'user_id' => string '3' (length=1) 
     'user_role' => string 'engineer' (length=8) 
     'uin' => string '801777170' (length=9) 
     'manager_uin' => string '607518069' (length=9) 
     'phone' => string '801111111' (length=9) 
     'ouc' => string 'BVG1C3' (length=6) 
     'email' => string '[email protected]' (length=19) 
     'first_name' => string 'Nat' (length=3) 
     'last_name' => string 'Mcghie' (length=6) 

我想這個數據合併到單個數組,其中存在匹配Array1中的coach_uin和Array2中的uin

我曾嘗試: $merged_data = array_merge($coach_assignment_data,$coach_user_info);

但它返回這樣的:

array (size=6) 
    0 => 
    array (size=5) 
     'id' => string '11' (length=2) 
     'request_id' => string '3' (length=1) 
     'coach_uin' => string '802877145' (length=9) 
     'date_intervention' => string '2015-06-01 00:00:00' (length=19) 
     'time_slot' => string 'AM' (length=2) 
    1 => 
    array (size=5) 
     'id' => string '12' (length=2) 
     'request_id' => string '3' (length=1) 
     'coach_uin' => string '802310154' (length=9) 
     'date_intervention' => string '2015-06-02 00:00:00' (length=19) 
     'time_slot' => string 'PM' (length=2) 
    2 => 
    array (size=5) 
     'id' => string '13' (length=2) 
     'request_id' => string '3' (length=1) 
     'coach_uin' => string '801777170' (length=9) 
     'date_intervention' => string '2015-06-03 00:00:00' (length=19) 
     'time_slot' => string 'AM' (length=2) 
    3 => 
    array (size=9) 
     'user_id' => string '5' (length=1) 
     'user_role' => string 'coach' (length=5) 
     'uin' => string '802877145' (length=9) 
     'manager_uin' => string '607518069' (length=9) 
     'phone' => string '8021111111' (length=10) 
     'ouc' => string 'BVG1C3' (length=6) 
     'email' => string '[email protected]' (length=23) 
     'first_name' => string 'Brendan' (length=7) 
     'last_name' => string 'Kane' (length=4) 
    4 => 
    array (size=9) 
     'user_id' => string '4' (length=1) 
     'user_role' => string 'coach' (length=5) 
     'uin' => string '802310154' (length=9) 
     'manager_uin' => string '607518069' (length=9) 
     'phone' => string '802111111' (length=9) 
     'ouc' => string 'BVG1C3' (length=6) 
     'email' => string '[email protected]' (length=23) 
     'first_name' => string 'Charles' (length=7) 
     'last_name' => string 'McIntosh' (length=8) 
    5 => 
    array (size=9) 
     'user_id' => string '3' (length=1) 
     'user_role' => string 'engineer' (length=8) 
     'uin' => string '801777170' (length=9) 
     'manager_uin' => string '607518069' (length=9) 
     'phone' => string '801111111' (length=9) 
     'ouc' => string 'BVG1C3' (length=6) 
     'email' => string '[email protected]' (length=19) 
     'first_name' => string 'Nat' (length=3) 
     'last_name' => string 'Mcghie' (length=6) 

有合併基礎上uin更快的方法?

感謝

+2

不知道你在做什麼,但它聽起來像是從數據庫中獲取這些信息。試着用連接查詢? – tyteen4a03

+0

也可能重複http://stackoverflow.com/questions/17041278/ph​​p-how-to-merge-arrays-inside-array – tyteen4a03

回答

0

要完成你的要求,你將不得不合並的每個陣列的內陣列。一種解決這個問題的方法是嵌套的foreach循環,如下所示:

foreach($Array2 as $coach){ 
    foreach($Array1 as $assignment){ 
    if(strCmp($coach['uin'],$assignment['coach_uin']) === 0){ 
     $merged_data[] = array_merge($coach, $assignment); 
    } 
    } 
}