PHP多维数组也被添加了

时间:2015-09-30 13:11:25

标签: php arrays

遇到问题。我有一个名为result的数组,其格式如下:

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移动到其他地方,就像在循环外部一样,我只看到一个用户,每个可能的组。我知道它需要在循环中打印,但无论我尝试什么,我都无法获得正确的输出。

如何让它只显示每个用户的组?

由于

1 个答案:

答案 0 :(得分: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>");
 }

重置结果中找到的每个用户的groups数组。