Не получается правильная рекурсия
Помогите с рекурсией разобраться.. Есть такая конструкция в БД
Как правильно организовать рекурсию, чтобы выглядело как то так:
567->568->569->573
570->571->572
я пытался как то так, но это неправильный вариант
private function menuRecursion($categories, $elements = [], $root_id = null, $parent_id = null)
{
foreach ($categories as $element) {
if ($element->parent_id) {
$parent_id = $element->parent_id != $root_id ? $element->parent_id : $parent_id;
$elements[$root_id][$parent_id] = $element->id;
$elements = $this->menuRecursion(AnalysCategory::findOne($element->parent_id), $elements, $root_id,$parent_id);
} else {
$root_id = $element->id;
}
}
return $elements;
}
