遇到问题。我有一个名为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移动到其他地方,就像在循环外部一样,我只看到一个用户,每个可能的组。我知道它需要在循环中打印,但无论我尝试什么,我都无法获得正确的输出。
如何让它只显示每个用户的组?
由于
答案 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数组。