Witam,
być może założenia błędne ale mam taką bazę danych:
recursive_tab
id
name
parent_id
z wartosciami typu:
1 | Main | null
2 | Praca | 1
3 | Dom | 1
Mam te wszystkie elementy w tablicy recursives.
Chciałbym zrobic posortowana tableice w taki sposob aby najpierw byl parent a pozniej zagniezdzone jego dzieci czyli w sumie array bylby w takiej samej kolejnosci jak w bazie w tym przypadku, ale podczas iteracji chciablym sobie do obiektu dopisywac $level czyli dla Main 0, dla praca i dom 1, itd
Próbowałem czegoś takiego:
private static function buildTree($elements, $parentId = null, $level = 0)
{
$result = array();
foreach ($elements as $element) {
if ($element->parent_id == $parentId) {
$result[] = $element;
return array_merge($result, self::buildTree($element, $element->id));
}
}
return $result;
}
i odpalam to:
$result = self::buildTree($elements, null);
ale nie działa. Sprawdziałęm też jakieś inne wariany. Ogólnie mam problem taki, że jak już odpale rekursywną metode to po zakończeniu nie wraca do flow i pozostałe elementy nie są iterowane.