php获取用户的下5级用户

/*
    * 获取当前用户的下5级
    * $parent 当前用户id  数组格式 例子[1]比如获取用户1的下5级
    * $level  所属第几级用户  1表示当前用户的下1级用户  为0或者不传 默认所有5级用户信息
    * $sub 数据集 变量参数  默认值即可
    * $depth 深度 默认值即可
    * 调用 $this->getSub([1],5);获取当前用户第5级的用户信息
    * */
    public function getAwardUser($parent = [],$level=0,$sub = [], $depth = 1)
    {
        if (empty($parent))
            return [];
        $ids = [];
        $im=implode(',',$parent);
        $userModel = $this->getDatabase('User');
        $tmp= $userModel->select("extend_id in ($im)",'id');//获取下一级成员
        if ($tmp){
            $tmp2=$tmp;
            while ($tmp2){
                $pop = array_pop($tmp2);
                $sub[$depth][] = $pop;
            }
            $tmp_id = array_column($tmp,'id');
            while ($tmp_id){
                $pop = array_pop($tmp_id);
                array_push($ids,$pop);
            }
        }
        if ($level > 0 and $level < 6)
        {
            if ($depth > $level)
                return $sub[$level];
        }
        if ($ids)
            return $this->getAwardUser($ids,$level,$sub,$depth + 1);
        else
            return $sub;
    }

 

转载于:https://www.cnblogs.com/langzibht/p/10172540.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值