Xpoint
   [напомнить пароль]

Занесения дерева в массив из MYSQl

Метки: [без меток]
2012-06-21 15:18:47 [обр] Carfagen[досье]

Всем привет.
Мне нужно из БД достать записи и занести их в ассоциативный массив.
Я понимаю, что тема заезжанная и у вас я нашел только одну похожую:
Построение списка (дерева) из двухмерного массива

Жалко, что в Zend Fraework нету уже подобного модуля для построения дерева. = (

idparent_idname
10Услуги
21Сервис
32Запчасти
42Гарантийный ремонт
52Автоэвакуатор
62Техобслуживание
спустя 10 часов [обр] Jared(3/26)[досье]

Carfagen[досье], почти уверен, что если не для Zend Fraework, то уж для PHP библиотек и функций, которые преобразуют плоский массив в дерево - стопицот. Если не найдете подходящую, реализовать собственную - вопрос 10-15 минут.

Вот вам элементарная рекурсивная функция:

$data = Array(
   Array('id'=>1,'parent_id'=>0,'name'=>'Услуги'),
   Array('id'=>2,'parent_id'=>1,'name'=>'Сервис'),
   Array('id'=>3,'parent_id'=>2,'name'=>'Запчасти'),
   Array('id'=>4,'parent_id'=>2,'name'=>'Гарантийный ремонт'),
   Array('id'=>5,'parent_id'=>2,'name'=>'Автоэвакуатор'),
   Array('id'=>6,'parent_id'=>2,'name'=>'Техобслуживание')
);


$sorted_data = array_tree($data,'id','parent_id','children');
print_r($sorted_data);


function array_tree($array, $id_key, $pid_key, $children_key, $id = 0)
{
   $out = array();
   foreach($array as $value)
   {
      if($value[$pid_key] == $id)
      {
         $value[$children_key] = array_tree($array,$id_key,$pid_key,$children_key,$value[$id_key]);
         $out[] = $value;
      }
   }
   return $out;
}
спустя 4 дня [обр] Carfagen[досье]
КАК ВСЕ ПРОСТО, СПАСИБО!
Я только учусь, осваиваю РНР и ЗЕНД...
спустя 4 дня [обр] Carfagen[досье]
P.s. Я все же нашел в Zend, по работе c деревьями меню.
Если кому интересно, называется Zend_Navigation.
спустя 7 часов [обр] Филипп Ткачев(20/112)[досье]
сообщение промодерировано
Offtopic
Что ж за программисты такие пошли, что вовсю юзают фреймворки, а рекурсию осилить не в состоянии.
спустя 18 часов [обр] Carfagen[досье]
Offtopic
Что ж за программисты такие пошли, что вовсю юзают фреймворки, а рекурсию осилить не в состоянии.
Ну, вот например, я себя программером и не считаю.
Так как только 2 месяца назад начал все это дело изучать и то ради себя, чтобы узнать что-то новое.. = )
А благодаря людям типа Jared, вроде что-то получается.
спустя 1 день 14 часов [обр] Jared(3/26)[досье]
Carfagen[досье], лучше не с фреймворков начинайте, а с теории...
Powered by POEM™ Engine Copyright © 2002-2005