* Построение дерева объектов
* @param array $objects
*/
public function buildTree(array &$objects) {
$index = array();
$relations = array();
foreach($objects as $key => $object) {
$index[$object->getId()] = $object->setChildren(array());
$relations[$object->getParentId()][] = $object;
if ($object->getParentId()) {
unset($objects[$key]);
}
}
foreach ($relations as $parent => $children) {
foreach ($children as $_children) {
if ($parent && isset($index[$parent])) {
$index[$parent]->addChildren($_children->setParent($index[$parent]));
}
}
}
return $this;
}
ну вот чего ты сразу
все обрушится если элементы не идут не последовательно, а у меня потомки могут быть выше или ниже родителя
Обсуждают сегодня