* Построение дерева объектов
                  
                  
                     * @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;
                  
                  
                    }
                  
                  
                
ну вот чего ты сразу
все обрушится если элементы не идут не последовательно, а у меня потомки могут быть выше или ниже родителя
Обсуждают сегодня