//获取用户的所有下级ID
function get_downline($members,$mid,$level=0){
    $arr=array();
    foreach ($members as $key => $v) {
        if($v['higher_level_id']==$mid){  //pid为0的是顶级分类
            $v['level'] = $level+1;
            $arr[]=$v;
            $arr = array_merge($arr,get_downline($members,$v['id'],$level+1));
        }
    }
    return $arr;
}


function GetTeamMember($members,$mid) {
    $Teams=array();//最终结果
    $mids=array($mid);//第一次执行时候的用户id
    do {
        $othermids=array();
        $state=false;
        foreach ($mids as $valueone) {
            foreach ($members as $key =>$valuetwo) {
                if($valuetwo['higher_level_id']==$valueone){
                    $Teams[]=$valuetwo['id'];//找到我的下级立即添加到最终结果中
                    $othermids[]=$valuetwo['id'];//将我的下级id保存起来用来下轮循环他的下级
                    array_splice($members,$key,1);//从所有会员中删除他
                    $state=true;
                }
            }
        }
        $mids=$othermids;//foreach中找到的我的下级集合,用来下次循环
    }while ($state==true);

    return $Teams;
}
    //获取一个用户的最顶级
    public static function merchants_sub($higher_level_id, $array = [])
    {
        $merchants_users = \app\admin\model\SystemAdmin::where('id', $higher_level_id)->find()->toArray();
//        dump($merchants_users);die;
        $array[] = $merchants_users;
        if ($merchants_users['higher_level_id']) {
            return self::merchants_sub($merchants_users['higher_level_id'], $array);
        }

        return $array;

    }

标签: none

添加新评论