PHP递归所有下级
/** * 获取用户下属ID集合 * @param $uid int * @param $ids string * @author jack * @throws string * @return string */ public function getUnderlingUIds($uid, $ids='') { $back = Db('ns_member','',false)->field('uid')->where('parent_uid',$uid)->select(); if (!empty($back) && is_array($back)) { foreach ($back as $v) { //防止当前人的ID重复去查询,形成恶性循环 if ($v['id'] == $uid) { continue; } $back2 = Db('ns_member','',false)->where('parent_uid',$v['uid'])->count('uid'); if ($back2 > 0) { $ids = $this->getUnderlingUIds($v['uid'],$ids); } else { $ids .= ','.$v['id']; } } } $ids = $uid.','.$ids.','; $ids = str_replace(',,', ",", $ids); $ids = trim($ids, ','); return $ids; }
数组方式:
/** * 获取所有的下级用户编号 * @author Yohole */ public function getUnderlingUIds($id, $idsArr = []) { $back = UserModel::field('id')->where(['pid' => $id, 'status' => 1, 'is_deleted' => 0])->select()->toArray(); if (!empty($back) && is_array($back)) { foreach ($back as $v) { //防止当前人的ID重复去查询,形成恶性循环 if ($v['id'] == $id) { continue; } $back2 = UserModel::where(['pid' => $v['id'], 'status' => 1, 'is_deleted' => 0])->count('id'); if ($back2 > 0) { $idsArr = $this->getUnderlingUIds($v['id'], $idsArr); } else { $idsArr[] = $v['id']; } } } array_unshift($idsArr, $id); return array_unique($idsArr); }
 
                    
                
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号