Вывод данных из таблицы (Nested sets) в виде Adjacency List

off

Новичок
Вывод данных из таблицы (Nested sets) в виде Adjacency List

Помогите плиз. Нужна функция для вывода данных из таблицы (Nested Sets) в формате Adjacency List.

Есть таблица в БД составленная по алгоритму nested sets.
ЕЕ структура такая:

id - id элемента
left_key
right_key
parent_id - id родителя
title - название раздела
level - уровень вложенности

Мне нужно вывести данные из этой таблицы таким образом:

Раздел1
-подраздел1_1
-подраздел1_2
-подраздел1_3
----подподраздел_1_3_1
----подподраздел_1_3_2
----подподраздел_1_3_3
-подраздел1_4
----подподраздел_1_4_1
----подподраздел_1_4_2
-подраздел1_5
-подраздел1_6

Раздел2

Раздел3

где 1_1 - это индексы.
Например 2_3_3 - это значит, что подраздел с таким индексом является 3-им по счету из всех подразделов раздела номер 3, который в свою очередь является 2-ым по счету из всех разделов.
 

off

Новичок
Ну и чего? Там во всех примерах этот массив уже создан.

Пример дерева


1 1
2 1.1
3 1.1.1
4 1.1.2
5 1.1.3
6 1.1.3.1
7 1.2
8 1.3
9 1.3.1
10 1.3.2
11 1.4
12 1.4.1
13 2
14 3
15 3.1



Соответствующий этому дереву массив


<?php
$a_tree=array(
array('k_item' =>1,'s_name' =>'1','a_tree' => array(
array('k_item' =>2,'s_name' =>'1.1','a_tree' => array(
array('k_item' =>3,'s_name' =>'1.1.1','a_tree' => array()),
array('k_item' =>4,'s_name' =>'1.1.2','a_tree' => array()),
array('k_item' =>5,'s_name' =>'1.1.3','a_tree' => array(
array('k_item' =>6,'s_name' =>'1.1.3.1','a_tree' => array())
)),
)),
array('k_item' =>7,'s_name' =>'1.2','a_tree' => array()),
array('k_item' =>8,'s_name' =>'1.3','a_tree' => array(
array('k_item' =>9,'s_name' =>'1.3.1','a_tree' => array()),
array('k_item' =>10,'s_name' =>'1.3.2','a_tree' => array())
)),
array('k_item' =>11,'s_name' =>'1.4','a_tree' => array(
array('k_item' =>12,'s_name' =>'1.4.1','a_tree' => array())
)),
)),
array('k_item' =>13,'s_name' =>'2','a_tree' => array()),
array('k_item' =>14,'s_name' =>'3','a_tree' => array(
array('k_item' =>15,'s_name' =>'3.1','a_tree' => array())
))
);
?>
 

off

Новичок
А как этот массив создается?

Хоть кто нибудь может мне помочь? Дать ссылку, или код?
 

off

Новичок
Это не то. Мне нужно не кол-во отступов, а сам индекс около названия раздела. Например:

подподраздел [1_4_1] <-вот этот индекс
 

off

Новичок
Все. СПАСИБО ВСЕМ! Сделал как сказал SiMM. id,parent_id рекурсия. Тема закрыта.
 
Сверху