嵌套集创建子树

时间:2015-06-23 21:26:06

标签: php tree nested-sets

我使用嵌套集创建树,如下所示:

user1
...user2
...user3
......user4
......user5
...user6
user7
...user8

DataBase表示意图:

------------------------------------------
|usr_id |usr_name | usr_left | usr_right |
------------------------------------------

我有数组的用户ID,但我必须保持树的结构,如果我得到任何用户和他的父母,例如

如果我想获得user1,user2和user7,我希望结果为:

user1
...user2
user7

如果我想获得user3和user6,例如user8结果应为

user3
user6
user7

因为用户7和用户3或6没有相同的父母

但如果我想用user1和user4(级别0和级别2)获取树,我想获得

user1
...[empty_indent-block]
......user4

所以我必须保留不在数组中的跳过用户的结构。

我想从我的阵列中获取所有用户并将其分组为 usr_left && usr_right 但我不知道如何以简单的方式做到这一点

1 个答案:

答案 0 :(得分:0)

所以我的用户数组表示它们的结构,数组看起来像:

array { 
    [0] => array{ 
               'id' => ID_OF_USER,
               'name' => NAME_OF_USER,
               'left' => LEFT_INDEX,
               'right'=> RIGHT_INDEX
           } 
    .
    .
    .
 }

我必须创建这个数组的树,所以如果元素的id是beetwen其他元素的左右两边 - element2 那么元素是element2的子元素

接下来我必须将我的树转换为具有缩进级别的一维数组