function makeNested($elements, $parentId = 0, $parents = []) {
$branch = array();
foreach ($elements as $element) {
if ($element->parentId == $parentId) {
array_merge($parents, [$element->hashId]);
$children = makeNested($elements, $element->id, $parents);
if ($children) {
$element->children = $children;
$element->parents = $parents;
}
$branch[$element->hashId] = $element;
}
}
return $branch;
}