Referans özyineleme ve geçen

0 Cevap php

Aşağıdaki yapının kategorilerinin bir ağaç vardır:

[6] => Array
    (
        [id] => 6
        [name] => computers
        [productCount] => 0
        [children] => Array
            (
                [91] => Array
                    (
                        [id] => 91
                        [name] => notebook
                        [productCount] => 5
                        [children] => Array
                            (
                            )
                    )

                [86] => Array
                    (
                        [id] => 86
                        [name] => desktop
                        [productCount] => 0
                        [children] => Array
                            (
                            )
                    )
            )
    )

(Bir klasör alt klasörler ve sadece dosyaları içerebilir gibi) bir alt kategori yanında, her bir kategori ürünleri içerebilir.

Ben referans olarak bu diziyi alır ve [ProductCount] = 0 ile hem yaprak kategorileri ve bu boş bir düğüm içeren tüm ana kategoriler şerit istediğiniz bir özyinelemeli fonksiyon yazmaya çalışıyorum. Diğer bir deyişle, işlem sonrasında herhangi sublevels ürünlerini tutun sadece bu kategoriler var istiyorum.

Ben şimdi hata ayıklama, bazı kod yazdı ettik ve onu boş bir düğüm şerit yok. Ben düzgün başvurular kullanarak değilim olabilir. , Mümkünse bana, bunu düzeltmek yardımcı olun.

    function pruneTree( & $node) {
    if ( ! $node['children'] && ! $node['productCount']) {
        unset($node);
    }
    if ( ! empty($node['children'])) {
        foreach ($node['children'] as $key => $child) {
            pruneTree($node['children'][$key]);
        }
    }
    return;
}

0 Cevap