2016-07-08 14 views
0

2つの配列を比較するのに少し問題があります。私は私のためのグループの配列を構築する機能を持っています。私は、上記の呼び出しは、以下の2つの配列の相互比較

array(144) { 
    [0]=> 
    array(5) { 
    ["GroupName"]=> 
    string(4) "Group One" 
    ["GroupEmail"]=> 
    string(25) "[email protected]" 
    [0]=> 
    array(1) { 
     ["GroupMember"]=> 
     string(13) "John Doe" 
    } 
    [1]=> 
    array(1) { 
     ["GroupMember"]=> 
     string(11) "Jane Murray" 
    } 
    [2]=> 
    array(1) { 
     ["GroupMember"]=> 
     string(10) "Julie Wise" 
    } 
    } 
    ... 
} 

のような出力に何か私はその後、

$users = getUsers(); 

にこのの出力を行うことによって、いくつかのユーザデータを取得するために別の呼び出しを行います

$groups = getGroups(); 

それを呼び出します配列は次のようなものです

array(66) { 
    [0]=> 
    array(2) { 
    ["UserName"]=> 
    string(14) "John Doe" 
    ["email"]=> 
    string(27) "[email protected]" 
    } 
    ... 
} 

私が今しようとしているのは、2つの配列をバインドすることです。私の目的は、出力された次のようなものを得ることです

Group One: [email protected], [email protected], [email protected], [email protected] 

は、したがって、上記の

GroupName: GroupEmail, GroupMember->email 

は、だから私は、クロスでは、私のユーザーのアレイ内で開催されたユーザ名でこれを確認するグループGroupMemberを取得する必要がありますメールを受け取る

このようなことは可能でしょうか?

おかげ

答えて

1


これはあなたのアレイ上で動作するはずです。あなたが欲しいものを正確に理解していないが、私はそれを推測してほしい。

foreach($groups as $groupKey=>$groupData) 
{ 
    if(is_array($groupData)) 
    { 
     foreach($groupData as $memberKey=>$memberData) 
     { 
      $res = array_search($memberData['GroupMember'],array_column($users, 'UserName')); 
      if($res !== false) { 
       $groups[$groupKey][$memberKey]['email'] = $users[$res]['email']; 
      } 
     } 
    } 
} 

これは出力として持つことになります。

array(3) { 
    ["GroupName"]=> 
    string(9) "Group One" 
    ["GroupEmail"]=> 
    string(22) "[email protected]" 
    [0]=> 
    array(2) { 
    [0]=> 
    array(2) { 
     ["GroupMember"]=> 
     string(8) "John Doe" 
     ["email"]=> 
     string(19) "[email protected]" 
    } 
    [1]=> 
    array(2) { 
     ["GroupMember"]=> 
     string(10) "Julie Wise" 
     ["email"]=> 
     string(19) "[email protected]" 
    } 
    } 
} 

は、この情報がお役に立てば幸いです。
ありがとうございます。
M.I.

+0

少し変更を加えましたが、これは多くの助けになりました。ありがとう –

関連する問題