PHP dizinleri hiyerarşik dizi oluşturma

0 Cevap php

(Ben bu kod optimize olmadığını biliyorum ama bu tartışma için değil) Aşağıdaki kodu vardır:

function select_categories($cat_id)
{
    $this->db = ORM::factory('category')
            ->where('parent', '=', $cat_id)
            ->find_all();

    foreach ($this->db as $num => $category)
    {
        if($category->parent == 0)
        {
            $this->tmp[$category->parent][$category->id] = array();
        }
        else {
            $this->tmp[$category->parent][$category->id] = array();
        }

        $this->select_categories($category->id);
    }

    return $this->tmp;
}

Fonksiyon bu dizi döndürür:

array(3) (
    0 => array(2) (
        1 => array(0) 
        2 => array(0) 
    )
    2 => array(1) (
        3 => array(0) 
    )
    3 => array(2) (
        4 => array(0) 
        5 => array(0) 
    )
)

Ama nasıl kodunu değiştirmek gerekir

else {
    $this->tmp[$category->parent][$category->id] = array();
        // ^^^^^^^^^^^^^^^^^^^^^^ (this bit)
}

array[3] array[2][3] (örneğin birleştirmek için array[3] array[2] ve array[2] bir alt olan bir alt çünkü I) dizinlerinin düzeyini bilmiyorum ne zaman array[0][2]), yani, ben (bu yapmanız gerekir:

array (
    0 => array (
        1 => array 
        2 => array (
                    3 => array (
                                4 => array
                                5 => array
                                ) 
                    ) 
    ) 
)

0 Cevap