Неправильно осуществляю рекурсию

an_kalinovski

Новичок
Неправильно осуществляю рекурсию

Не могу правильно сделать рекурсию, плиз подскажите...


Фрагмент из базы:
===============
id parent_id
32 0
33 0
34 33
35 33
36 34
=================
Рекурсивная функция такая вот

function processNode($parentId = 0, $result='', $level=0)
{
++$level;
$categories = $this->Dao->getProductsByParentId($parentId);

if ( count($categories) > 0 )
{
foreach ( $categories as $category )
{
$self = $category->getId();
$result .= "#".$self."->".$level;
$this->processNode($self, $result, $level) ;
}
}
return $result;
}
=================

Она выплевывает $result в самом начале (просто ставлю echo $result;)

#32->1
#32->1#33->1
#32->1#33->1#34->2
#32->1#33->1#34->2#36->3
#32->1#33->1#34->2#35->2

Т.е. в последнем выхлопе почемуто съедается кусок #36->3, как будто не идет второй объект в цикл после выхода из рекурсии. Как этого избежать?


Пардон, разобрался сам... При уходе на второй круг в цикле для резута восстанавливалось значение которое было до выполнения рекурсии... Нужно просто присваивать еще и результак рекурсивного обхода (со сброшенным в ноль резултом )))))
 
Сверху