php递归查找树形用户关系团队总人数

php递归查找树形用户关系团队总人数

users表中有 

user_id:当前用户ID

first_leader:上级ID(是上级ID,不是第一级IID) 

/**
     * 通过 user_id  查  所有
     */
    public function get_team_num(){
        ini_set('max_execution_time', '0');

        $user_id = I('user_id');
      
        $all = M('users')->field('user_id,first_leader')->select();

      
        $values = [];
        foreach ($all as $item) {
            $values[$item['first_leader']][] = $item;
        }
        //foreach ($all as $k => $v) {
            $coumun = $this->membercount($user_id, $values);
            
            //M('users')->where(['user_id'=>$v['user_id']])->update(['underling_number'=>$coumun]);
            //$coumun += $coumun;
       // }
        
       M('users')->where(['user_id'=>$user_id])->update(['underling_number'=>$coumun]);
        
       echo $coumun;
       
    }


    public function membercount($id, $data)
    {
        $count = 0;
        $num = count($data[$id]);
        if (empty($data[$id])) {
            return $num;
        } else {
            $mun = 0;
            foreach ($data[$id] as $key => $value) {
                if (empty($data[$value['user_id']])) {
                    continue;
                } else {
                    $mun += intval($this->membercount($value['user_id'], $data));
                }
            }
            $num += $count;
        }
        return $num + $mun;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值