递归获取我的团队列表 php数组排序 加快加载速度

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36602939/article/details/91068224

递归获取用户下线(不包括自己) 以及等级

【对此修改是:users表联表users表,自己联自己,为了把下级pid的昵称获取出来】

//递归获取用户下线(不包括自己) 以及等级
function getDownMemberIds2($uid,$need_all=false,$agent_level=1,$agent_level_limit=0){
    global $g_down_ids;
    if(!$uid){
        return false;
    }
    if($uid||true){
        $member_arr = Db::name('users')
                        ->alias('u')
                        ->join('users uu','u.pid = uu.id')
                        ->field('u.id,u.pid,u.nickname,uu.nickname as up_nickname')
                        ->where(['u.pid'=>$uid])
                        ->limit(0,5000)
                        ->select();
                        
        foreach($member_arr as $mb){
            if($mb['id']&&$mb['id']!=$uid){
                if($need_all){
                    $mb['agent_level'] = $agent_level;
                    $GLOBALS['g_down_ids'][]=$mb;
                }else{
                    $GLOBALS['g_down_ids'][]=$mb['id'];
                }
                getDownMemberIds2($mb['id'],$need_all,$agent_level+1,$agent_level_limit);
            }   
        }
    }
    return $g_down_ids;
}

新的团队列表controller:

 public function myTeam(){

        $userid = session('user.id');
       
        // 当前用户的30级下线 返回等级
        $team_list = getDownMemberIds2($userid,true,1,30);
      
        $sort = array(
            'direction' => 'SORT_ASC', //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
            'field'     => 'agent_level',       //排序字段
        );
        $arrSort = array();
        foreach($team_list AS $uniqid => $row){
            foreach($row AS $key=>$value){
                $arrSort[$key][$uniqid] = $value;
            }
        }
        if($sort['direction']){
            array_multisort($arrSort[$sort['field']], constant($sort['direction']), $team_list);
        }
        $this->assign('list', $team_list);
        return $this->fetch('myTeamNew');

  }

相比以前,用了三层foreach循环嵌套,极大拖慢加载速度。

现在只是对数组进行排序即可

优化前:

优化后: 

猜你喜欢

转载自blog.csdn.net/qq_36602939/article/details/91068224