查找某个部门下的所有子部门

10 篇文章 0 订阅

部门表department

字段:id,parent_id(所属上级部门id),name(部门名称),leavel(部门层级,比如最上级的部门为1,他下面的部门为2,以此类推)

查找部门(部门id)A的所有子部门

实现:

1、先查找到部门A的信息取得A部门的层级假设为B

select * from department where id = 'A';

 

2、查找出层级大于B的所有部门,并且根据leavel顺序排列(根据leavel排序后能保证一次foreach循环就能取得所有下级菜单)

select * from department where leavel >B order by leavel asc

 

3、设置2获取到的信息为变量$result,如下代码取得的下级部门id数组为$lastClassArr

        $class  = 4;//设置该值为A部门的id
        $lastClassArr = [$class];//下级部门id数组
        foreach($result as $key => $value){
            if(in_array($value['parent_id'],$lastClassArr)){
                $lastClassArr[] = $value['id'];
            }

        }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值