PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 1
дусрукп Отправлено: 30 Апреля, 2014 - 14:03:06 • Тема: Помогите создать функцию наполнения сложного массива из БД • Форум: Хранение данных, их вывод и обработка

Ответов: 1
Просмотров: 862
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE `divs` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `id_parent` int(11) NOT NULL,
  4.   `name` varchar(255) NOT NULL,
  5.   `type` varchar(22) NOT NULL,
  6.   `lang` int(1) NOT NULL DEFAULT '1',
  7.   PRIMARY KEY (`id`)
  8. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;
  9.  
  10. INSERT INTO `divs` (`id`, `id_parent`, `name`, `type`, `lang`) VALUES
  11. (1, 0, 'Главная', '1', 1),
  12. (3, 0, 'Новости', '2', 1),
  13. (4, 0, 'О компании', '1', 1),
  14. (5, 0, 'Клиенты', '1', 1),
  15. (6, 0, 'Контакты', '1', 1),
  16. (10, 4, 'История', '1', 1),
  17. (11, 4, 'Учредители', '1', 1),
  18. (24, 10, 'Начало', '1', 1),
  19. (25, 10, 'Середина', '1', 1),
  20. (26, 10, 'Конец', '1', 1);


Необходимо сделать функцию, которая создает массив вида

PHP:
скопировать код в буфер обмена
  1. (
  2.       [0] => Array
  3.         (
  4.             [id] => 1
  5.             [id_parent] => 0
  6.             [name] => Главная
  7.             [type] => 1
  8.             [lang] => 1
  9.         )
  10.  
  11.       [1] => Array
  12.         (
  13.             [id] => 3
  14.             [id_parent] => 0
  15.             [name] => Новости
  16.             [type] => 1
  17.             [lang] => 1
  18.         )
  19.        
  20.       [2] => Array
  21.         (
  22.             [id] => 4
  23.             [id_parent] => 0
  24.             [name] => О компании
  25.             [type] => 1
  26.             [lang] => 1
  27.             [parent] => Array
  28.                     (
  29.                           [0] => Array
  30.                         (
  31.                               [id] => 10
  32.                             [id_parent] => 4
  33.                             [name] => История
  34.                             [type] => 1
  35.                             [lang] => 1
  36.                             [parent] => Array
  37.                                           (
  38.                                                 [0] => Array
  39.                                             (
  40.                                                   [id] => 24
  41.                                                   [id_parent] => 10
  42.                                                   [name] => Начало
  43.                                                   [type] => 1
  44.                                                   [lang] => 1
  45.                                             )
  46.                                
  47.                                             [1] => Array
  48.                                             (
  49.                                                   [id] => 25
  50.                                                   [id_parent] => 10
  51.                                                   [name] => Середина
  52.                                                   [type] => 1
  53.                                                   [lang] => 1
  54.                                             )
  55.                                            
  56.                                             [2] => Array
  57.                                             (
  58.                                                   [id] => 26
  59.                                                   [id_parent] => 10
  60.                                                   [name] => Конец
  61.                                                   [type] => 1
  62.                                                   [lang] => 1
  63.                                             )
  64.                                           )
  65.                         )
  66.            
  67.                         [1] => Array
  68.                         (
  69.                               [id] => 11
  70.                             [id_parent] => 4
  71.                             [name] => Учредители
  72.                             [type] => 1
  73.                             [lang] => 1
  74.                         )
  75.                     )
  76.                  
  77.         )
  78.         [3] => Array
  79.         (
  80.             [id] => 5
  81.             [id_parent] => 0
  82.             [name] => Контакты
  83.             [type] => 1
  84.             [lang] => 1
  85.         )
  86.  
  87. )


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

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB