MELNICA.ORG

PHP Построение дерева без рекурсии

Для ускорения работы построения дерева можно использовать особый метод. Мне понадобилось нарыл в интернете, добавил для себя, чтоб не забыть, кому интересно изучайте!



$ret = array(
                1=>array("id"=>1, "parent_id"=>0),
                2=>array("id"=>2, "parent_id"=>0),
                3=>array("id"=>3, "parent_id"=>1),
                4=>array("id"=>4, "parent_id"=>3),
                5=>array("id"=>5, "parent_id"=>4),
                6=>array("id"=>6, "parent_id"=>2),
                
                
                
                
            );
            
            foreach ($ret as $id => $node) {
                if (isset($ret[$node['parent_id']])) {
                  $ret[$node['parent_id']]['sub'][$id] =& $ret[$id];

                }
            }
            $return = array();
            foreach ($ret as $k=>$v){
                if($v["parent_id"] == 0){
                    $return[$k]= $v;
                }
            }

Автор: Из сети

Коментировать