寻找所有下级
/**
* @desc 获取所有下级ID
*
* @param $uid
* @param string $ids
* @return string
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @author Tao
* @email 804633234@qq.com
* @date 2022-09-29 11:19
*/
public function getAllSub($superior_id)
{
$array = [];
$data = db('member')->where('referee_id', $superior_id)->field('id')->select();
if ($data) {
$ids = array_column($data, 'id');
$array = array_merge($array, $ids);
foreach ($data as $k => $v) {
$array = array_merge($array, $this->getAllSub($v['id']));
}
}
return $array;
}
寻找最顶级ID
/**
* @desc 获取顶级用户
*
* @param $id
* @param $referee_id
* @return mixed
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @author Tao
* @email 804633234@qq.com
* @date 2022-09-22 14:22
*/
function getThree($id,$referee_id){
$up_member = db("member")->where("id",$referee_id)->field("id,referee_id")->find();
if(empty($up_member)){
$mobile=db("member")->where("id",$id)->field("mobile")->find();
return $mobile['mobile'];
}
if($up_member['id']!=1){
return $this->getThree($up_member['id'],$up_member['referee_id']);
}else{
$mobile=db("member")->where("id",$id)->field("mobile")->find();
return $mobile['mobile'];
}
}
递归three
function buildTree(array $elements, $parentId = 0) {
$tree = [];
foreach ($elements as $element) {
if ($element['parent_id'] == $parentId) {
$children = buildTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$tree[] = $element;
}
}
return $tree;
}