我有一个ldap请求返回一个数组,但返回的数组充满了“计数”和奇数指针,因为这个应用程序是一个设计用于移动设备上的Javascript的API,文本越少越好
删除所有没有密钥计数的值的最有效方法是什么?以及那些似乎只是在说键是什么的(例如[0] => cn)?
Array
(
[status] => OK
[count] => 4
[results] => Array
(
[count] => 3
[0] => Array
(
[cn] => Array
(
[count] => 1
[0] => James Bee
)
[0] => cn
[umanprimaryou] => Array
(
[count] => 1
[0] => Awesome School
)
[1] => umanprimaryou
[ou] => Array
(
[count] => 2
[0] => School of Awesome
[1] => Faculty of Engineering
)
etc...
瞄准
Array
(
[status] => OK
[results] => Array
(
[0] => Array
(
[cn] => Array
(
[0] => James Bee
)
[umanprimaryou] => Array
(
[0] => Awesome School
)
[ou] => Array
(
[0] => School of Awesome
[1] => Faculty of Engineering
)
etc...
为了进一步说明,我想取消所有[count] =>值对,如果可能的话,值为[0] => cn在结果数组中。
答案 0 :(得分:3)
未经测试的代码:
function strip_count(array $arr) {
foreach ($arr as $key => $value) {
if (is_array($arr[$key])) {
strip_count($arr[$key]);
} else {
if ($key == 'count') {
unset($arr[$key]);
}
}
}
}
编辑:我在你编辑你的问题之前写了这个,但是修改这个递归函数来去除你想要删除的其他东西也不应该太难。
答案 1 :(得分:2)
可能希望使用array_walk_recursive并检查用户定义的函数中是否$key == 'count'
。