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

发布于 2022-09-07 21:26:39 字数 4477 浏览 12 评论 0

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

useridnameLftRgtLevel
1001wang1161
1002li272
1003wlm8152
1005bander343
1008qipl563
1007buliao9123
1009wumao13143
1013zhangsan10114

组织结构图:
组织结构图

用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天了,搞不出来,所以求助一下这里的前辈。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尾戒 2022-09-14 21:26:39

数据库查出来不可能是多维以上的结果,查出来后你必须按照左右权值计算出tree来,可以在加个字段pid 就简单了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文