Помогите создать функцию наполнения сложного массива из БД

lecherg

Новичок
Код:
CREATE TABLE `divs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_parent` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `type` varchar(22) NOT NULL,
  `lang` int(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;

INSERT INTO `divs` (`id`, `id_parent`, `name`, `type`, `lang`) VALUES
(1, 0, 'Главная', '1', 1),
(3, 0, 'Новости', '2', 1),
(4, 0, 'О компании', '1', 1),
(5, 0, 'Клиенты', '1', 1),
(6, 0, 'Контакты', '1', 1),
(10, 4, 'История', '1', 1),
(11, 4, 'Учредители', '1', 1),
(24, 10, 'Начало', '1', 1),
(25, 10, 'Середина', '1', 1),
(26, 10, 'Конец', '1', 1);
Необходимо сделать функцию, которая создает массив вида

Код:
Array
(
      [0] => Array
        (
            [id] => 1
            [id_parent] => 0
            [name] => Главная
            [type] => 1
            [lang] => 1
        )
 
      [1] => Array
        (
            [id] => 3
            [id_parent] => 0
            [name] => Новости
            [type] => 1
            [lang] => 1
        )
       
      [2] => Array
        (
            [id] => 4
            [id_parent] => 0
            [name] => О компании
            [type] => 1
            [lang] => 1
            [parent] => Array
                    (
                          [0] => Array
                        (
                              [id] => 10
                            [id_parent] => 4
                            [name] => История
                            [type] => 1
                            [lang] => 1
                            [parent] => Array
                                          (
                                                [0] => Array
                                            (
                                                  [id] => 24
                                                  [id_parent] => 10
                                                  [name] => Начало
                                                  [type] => 1
                                                  [lang] => 1
                                            )
                               
                                            [1] => Array
                                            (
                                                  [id] => 25
                                                  [id_parent] => 10
                                                  [name] => Середина
                                                  [type] => 1
                                                  [lang] => 1
                                            )
                                           
                                            [2] => Array
                                            (
                                                  [id] => 26
                                                  [id_parent] => 10
                                                  [name] => Конец
                                                  [type] => 1
                                                  [lang] => 1
                                            )
                                          )
                        )
           
                        [1] => Array
                        (
                              [id] => 11
                            [id_parent] => 4
                            [name] => Учредители
                            [type] => 1
                            [lang] => 1
                        )
                    )
                 
        )
        [3] => Array
        (
            [id] => 5
            [id_parent] => 0
            [name] => Контакты
            [type] => 1
            [lang] => 1
        )

)
Притом база может быть любого уровня вложенности. Помогите, не могу сделать...
 

lecherg

Новичок
Здесь подобный вопрос всплывает чуть ли не каждую неделю. В гугле полно примеров. Так сложно поискать, да?
я неделю ищу и не могу найти как на российских, так и на зарубежных форумай/сайтах. Именно такую структуру как сделать?
 
Сверху