Значение счетчика PHP-полос из массива - PullRequest
0 голосов
/ 14 мая 2011

У меня есть запрос ldap, который возвращает массив, однако возвращаемый массив полон «счетчиков» и нечетных указателей, так как это приложение представляет собой API, разработанный для использования с Javascript на мобильных устройствах, чем меньше текста, тем лучше.

Какой самый эффективный способ удалить все значения, у которых нет счетчика ключей?Как и те, которые просто говорят, что это за ключи (например, [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 ]

3 голосов
/ 14 мая 2011

непроверенный код:

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]);
            }
        }
    }
}

Редактировать: я написал это до того, как вы отредактировали свой вопрос, но не должно быть слишком сложно изменить эту рекурсивную функцию, чтобы убрать другие вещи, которые вы также хотите удалить.

2 голосов
/ 14 мая 2011

Возможно, вы захотите использовать array_walk_recursive и проверить, если $key == 'count' в вашей пользовательской функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...