我有一个返回数组的 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 等值。
未经测试的代码:
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]);
}
}
}
}
编辑:我在你编辑你的问题之前写了这篇文章,但是修改这个递归函数来去除你想要删除的其他东西应该不会太难。
可能需要研究如何使用array_walk_recursive并检查用户定义函数中是否$key == 'count'
。