通过自己的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