рекурсия с определёной веткой?

DenVeroid

Новичок
рекурсия с определёной веткой?

имеется рекурсивная функция getListing(), которой передаётся массив разделов из БД в таком формате

PHP:
$arr[$row['parent']][] = array('id'=>$row['id'], 'parent' => $row['parent'], 'name' => $row['name']);

PHP:
<?php
public function getListing($data, $parent, $lvl) 
    {           
         static $out = '';
         if (!isset($data[$parent])) return;
            $indent =  str_repeat('  ', $lvl); 
            $out .= $indent."<ul>\n";
            
            foreach($data[$parent] as $v) 
            {  
               $out .= $indent.'  <li><a href="'.$v['id'].'">'.$v['name']."</a></li>\n";

               $this->getListing($model, $v['id'], $lvl+1);
            }
            
       $out .= $indent."</ul>\n";
       return $out;
    }    
?>
всё работает отлично, строит карту как надо, вот пример чтобы построить всё карту

getListing($arr, 0, 0)

PHP:
Cars
-- chevy
-- ford
---- mustang
---- ranger
-- toyota
Food
-- fruit
---- apples
---- oranges
------- sunny
------- green
-- pasta
-- veges
Acura
BMW
вопрос, как сделать если нужно вывести не всё карту а только одну ветку, в примеру если укажем

getListing($arr, 8, 0)
где 8 это ID раздела mustang

нужно чтобы получилась такая ветка

PHP:
Cars
-- chevy
-- ford
---- mustang
---- ranger
-- toyota
Food
Acura
BMW
как такое сделать?
 

DenVeroid

Новичок
переискал во всём инете, везде примеры генерировании всей ветки.

надо получить только одну ветку, остальные не трогать, вот как тут на примере, при выборе раздела "Компас"
http://www.satsite.ru/category/cat-43/
 

WebAngel

Новичок
сначала строим дерево, потом проходим его и отмечаем путь до выделенного внутреннего пункта меню, и после этого выводим в хтмл таким образом, что вложенные элементы рендерятся только при условии, что они активные
 

DenVeroid

Новичок
спасибо, не могли бы показать рабочий пример,?
буду очень признателен вам
 
Сверху