Recursively PHP Arama dizi ve 'x' Endeksin dönüş sayısı?

4 Cevap

Özyinelemeli bir dizi arama ve belirli bir anahtar 'x' (ne olursa olsun ne kadar derin) oluşur örneklerinin sayısını dönmenizi sağlayan bir PHP işlevi var mı?

4 Cevap

Şimdi evet. :)

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

Bu size yardımcı olabilir.

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");

This is pretty much what the array_count_values fonksiyonu içindir, fakat if you're using a multi-dimensional array as you imply, if would be fairly trivial to put something together using the array_walk_recursive function.

Hayır. Kendi yaz! Özyineleme eğlenceli! = D