来自Array的PHP Strip计数值

时间:2011-05-13 21:12:40

标签: php arrays multidimensional-array

我有一个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在结果数组中。

2 个答案:

答案 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'