php上下级获取方法

      发布在:后端技术      评论:0 条评论

php上下级获取方法,摘抄自某源码,保存下来方便学习下

//获取上级会员
public function parent_user($uid,$num=1,$lv=1)
{
$pid = db($this->table)->where('id',$uid)->value('parent_id');
$uinfo = db($this->table)->where('id',$pid)->find();
if($uinfo){
if($uinfo['parent_id']&&$num>1) $data = self::parent_user($uinfo['id'],$num-1,$lv+1);
$data[] = ['id'=>$uinfo['id'],'pid'=>$uinfo['parent_id'],'lv'=>$lv,'status'=>$uinfo['status']];
return $data;
}
return false;
}


//获取下级会员
public function child_user($uid,$num=1,$lv=1)
{

$data=[];
$where = [];
if ($num ==1) {
$where[] = ['parent_id','=',$uid];
$data = db('xy_users')->where('parent_id', $uid)->field('id')->column('id');

}else if ($num == 2) {
//二代
       $ids1 = db('xy_users')->where('parent_id', $uid)->field('id')->column('id');
$ids1 ? $where[] = ['parent_id','in',$ids1] : $where[] = ['parent_id','in',[-1]];
$data = db('xy_users')->where($where)->field('id')->column('id');
$data = $lv ? array_merge($ids1 ,$data) : $data;
}else if ($num == 3) {
//三代

       $ids1 = db('xy_users')->where('parent_id', $uid)->field('id')->column('id');
$ids1 ? $wher[] =  ['parent_id','in',$ids1] : $wher[] =  ['parent_id','in',[-1]];
$ids2 = db('xy_users')->where($wher)->field('id')->column('id');
$ids2 ? $where[] = ['parent_id','in',$ids2] : $where[] = ['parent_id','in',[-1]];
$data = db('xy_users')->where($where)->field('id')->column('id');
$data = $lv ? array_merge($ids1 ,$ids2, $data) : $data;
}else if ($num == 4) {
//四带
       $ids1 = db('xy_users')->where('parent_id', $uid)->field('id')->column('id');
$ids1 ? $wher[] =  ['parent_id','in',$ids1] : $wher[] =['parent_id','in',[-1]];
$ids2 = db('xy_users')->where($wher)->field('id')->column('id');
$ids2 ? $where2[] = ['parent_id','in',$ids2] : $where2[] = ['parent_id','in',[-1]];
$ids3 = db('xy_users')->where($where2)->field('id')->column('id');
$ids3 ? $where[] = ['parent_id','in',$ids3] : $where[] = ['parent_id','in',[-1]];
$data = db('xy_users')->where($where)->field('id')->column('id');
$data = $lv ? array_merge($ids1 ,$ids2,$ids3, $data): $data;

}else if ($num == 5) {
//五带
       $ids1 = db('xy_users')->where('parent_id', $uid)->field('id')->column('id');
$ids1 ? $wher[] =  ['parent_id','in',$ids1] : $wher[] =  ['parent_id','in',[-1]];
$ids2 = db('xy_users')->where($wher)->field('id')->column('id');
$ids2 ? $where2[] = ['parent_id','in',$ids2] : $where2[] = ['parent_id','in',[-1]];
$ids3 = db('xy_users')->where($where2)->field('id')->column('id');
$ids3 ? $where3[] = ['parent_id','in',$ids3] : $where3[] = ['parent_id','in',[-1]];
$ids4 = db('xy_users')->where($where3)->field('id')->column('id');
$ids4 ? $where[] = ['parent_id','in',$ids4] : $where[] = ['parent_id','in',[-1]];
$data = db('xy_users')->where($where)->field('id')->column('id');

$data = $lv ? array_merge($ids1 ,$ids2,$ids3,$ids4, $data) :$data;
}

return $data;
}


相关文章
热门推荐