php生成组织结构图,php怎么计算输出数据表里组织架构图的数组结构

我的数据库表user_tree是这样的,这是一个左右值树,Level代表树深度,Lft是左值,Rgt是右值。

userid

name

Lft

Rgt

Level

1001

wang

1

16

1

1002

li

2

7

2

1003

wlm

8

15

2

1005

bander

3

4

3

1008

qipl

5

6

3

1007

buliao

9

12

3

1009

wumao

13

14

3

1013

zhangsan

10

11

4

组织结构图:

bVbfPRZ?w=747&h=415

用php怎么能实现,任意给一个userid值,就能组织成一个多维数组结构。

例如我输入一个函数aaa(userid=1003),就能返回1003下面所有子孙节点,组织的多维数组。只用一次查询,不能循环去数据库查询,服务器受不住。最多2次查询,就能出现结果。最多返回4层。例如,输入1003。查询到1003,在2层,那么最多查询到6层。

查询1003节点的所有子孙节点是这样的,左右值树参考

SELECT * FROM user_tree WHERE Lft >= 8 AND Lft <= 15 AND Level<=6 ORDER BY Level ASC

array(

'userid' => '1003',

'name' => 'wlm',

'children' => array(

0 => array(

'userid' => '1007',

'name' => 'buliao',

'children' => array(

0 => array(

'userid' => '1013',

'name' => 'zhangsan'

)

) ,

1 => array(

'userid' => '1009',

'name' => 'wumao'

) ,

) ,

) ,

);

想了3天了,搞不出来,所以求助一下这里的前辈。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值