PHP遞歸查找所有下級用戶,以當前用戶為起點,無限級查找所有下級,多層級權限等同理
這里只做查詢所有下級用戶id,可根據需求進行修改,流程是第一次傳一個用戶id進來查詢,查詢不到返回空數組,查詢到則取查詢到的用戶id繼續查詢下級,查到就追加進數組后繼續查,查不到就返回。
//遞歸查找下級用戶id $arr已保存的下級用戶ids數組
public function userIdList($user_id = 0,$arr=[])
{
//查出用戶的第一層下級
$ids = Db::name('xy_users')->where('parent_id','in',$user_id)->column('id');
if(!empty($ids)){
foreach ($ids as $k=>$v){
if(in_array($v,$arr)){
//如果這個id已經記錄了,則跳過,避免記錄多個同樣的id
unset($ids[$k]);
}else{
//id沒記錄,追加記錄進數組
$arr[] = $v;
}
}
if(!$ids){
//沒有下級了,可以返回數組了
return $arr;
}else{
//用下級的id繼續遞歸查找他們的下級
return $this->userIdList($ids,$arr);
}
}
return $arr;
}
每天進步一點點

浙公網安備 33010602011771號