美文网首页
关于上下级无限级的方法汇总

关于上下级无限级的方法汇总

作者: 任人渐疏_Must | 来源:发表于2018-12-27 13:36 被阅读0次

通过自己的ID,查询无限级下级的id值和每级的个数

public function teamer($uids){
for($i=1;$i<=9; $i++){
  $map['pid'] = array('in',$uids);
  $uids = M('userlist')->where($map)->getField('userid,username');
  $uids = array_keys($uids);
  $p_user_list[$i] = $uids; //获取每级下级的uid
  //$p_user_list[$i] = count($uids); 获取每级下级的个数
}
foreach($p_user_list as $v){
  foreach($v as $vv){
  $list[] = $vv;
  }
}
$str_list = implode(',',$list);  //所有下级的UID

}

通过自己的ID,获取N级上级

//查询父级
public function getParents($data,$id){
$arr = array();
foreach($data as $v){
  if($v['userid'] == $id){
  $arr[] = $v;
  $arr = array_merge(self::getParents($data,$v['pid']),$arr);
  }
  }
return $arr;
}

在具体调用这个方法

$p=M('userlist')->field("pid")->where('userid='.$userid)->find();
$pid =$p['pid']; //获取当前ID的父ID
$list = M('userlist')->field('userid,pid')->select();//获取所有用户
$data = $this->getParents($list,$pid);
$data = array_reverse($data);
for($i=0;$i<=10;$i++){
    if($data[$i]){
  $temp[]=$data[$i]['userid'];
  }
}
//$temp 就是获得九级的ID

相关文章

网友评论

      本文标题:关于上下级无限级的方法汇总

      本文链接:https://www.haomeiwen.com/subject/mpuxlqtx.html