PHP Поиск массива рекурсивно и счетчик возврата индекса «х»? - PullRequest
0 голосов
/ 18 января 2010

Существует ли функция PHP, которая позволяет рекурсивно искать в массиве и возвращать количество экземпляров, в которых встречается определенный ключ 'x' (независимо от его глубины)?

Ответы [ 4 ]

5 голосов
/ 19 января 2010

Теперь да. :)

function count_key($array, $key) {
    $count = 0;
    foreach($array as $k => $val) {
        if($k == $key)
            $count++;
        if(is_array($val))
        $count += count_key($val, $key);
    }
    return $count;
}
0 голосов
/ 19 января 2010

Это может помочь вам.

function recursiveSum($array, $keyToSearch) {
    $total = 0;
    foreach($array as $key => $value) {
        if(is_array($value)) {
            $total += recursiveSum($value, $keyToSearch);
        }
        else if($key == $keyToSearch) {
            $total += $value;
        }
    }
    return $total;
}

$total = recursiveSum($array, "test");
0 голосов
/ 19 января 2010

Это в значительной степени то, для чего предназначена функция array_count_values ​​, но , если вы используете многомерный массив, как вы предполагаете, если было бы довольно тривиально сложить что-то вместе используя функцию array_walk_recursive .

0 голосов
/ 19 января 2010

Неа. Напишите свой собственный! Рекурсия это весело! = D * * тысяча одна

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