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

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

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

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