来自数组的 PHP 条带计数值



我有一个返回数组的 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'

相关内容

  • 没有找到相关文章

最新更新