2016-07-08 7 views
0

두 배열을 비교하는 데 약간의 문제가 있습니다. 나에게는 그룹 배열을 만드는 함수가있다. 나는 다음2 배열의 교차 비교

$groups = getGroups(); 

를 호출 위의 호출 그때

$users = getUsers(); 

이의 출력을 수행하여 다른 전화가 일부 사용자 데이터를 얻을 수 있도록 다음과 같은

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" 
    } 
    } 
    ... 
} 

같은 출력 뭔가 배열은 다음과 같습니다.

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

약간의 변경을가했지만 많은 도움이되었습니다. 감사 –