2015-09-30 101 views
1

有一些問題。我有一個名爲結果的數組,其格式如下:正在添加PHP多維數組

Array 
(
    [count] => 74 
    [0] => Array 
    (
     [15] => usncreated 
     [memberof] => Array 
     (
      [count] => 3 
      [0] => GroupA 
      [1] => GroupB 
      [2] => GroupC 
     ) 

    ) 
    [1] => Array 
    (
     [15] => usncreated 
     [memberof] => Array 
     (
      [count] => 2 
      [0] => GroupA 
      [1] => GroupF 
     ) 

    ) 
) 

我正試圖建立自己的數組。目前,我有

foreach($result as $user) { 

    if(isset($user["memberof"])){ 
     foreach($user["memberof"] as $group) { 
      $groups[] = $group; 
     } 

    } 
    $userData["group"] = $groups; 

    print_r("<pre>"); 
     print_r($userData); 
    print_r("</pre>"); 
} 

問題是我的輸出是像這樣

Array 
(
    [group] => Array 
    (
     [0] => 2 
     [1] => GroupA 
     [2] => GroupB 
    ) 
) 

Array 
(
    [group] => Array 
    (
     [0] => 2 
     [1] => GroupA 
     [2] => GroupB 
     [3] => 2 
     [4] => GroupA 
     [5] => GroupF 
    ) 
) 

所以第二個重複第一。如果我把print_r移動到其他地方,就像在循環之外,我只看到一個用戶和每個可能的組。我知道它需要循環打印,但無論我嘗試,我都無法得到正確的輸出。

我怎樣才能讓它只顯示每個用戶的組?

由於

+0

foreach($ user [「memberof」] as $ group)作爲您的需求是無用的 –

回答

1
foreach($result as $user) { 

    $groups = array(); // RESET GROUPS ARRAY 

    if(isset($user["memberof"])){ 
     foreach($user["memberof"] as $group) { 
      $groups[] = $group; 
     } 

    } 
    $userData["group"] = $groups; 

    print_r("<pre>"); 
     print_r($userData); 
    print_r("</pre>"); 
} 

復位組陣列,用於在結果中找到的每個用戶。