//获取用户的所有下级ID
function get_downline($members,$mid,$level=0){
$arr=array();
foreach ($members as $key => $v) {
if($v['higher_level_id']==$mid){ //pid为0的是顶级分类
$v['level'] = $level+1;
$arr[]=$v;
$arr = array_merge($arr,get_downline($members,$v['id'],$level+1));
}
}
return $arr;
}
function GetTeamMember($members,$mid) {
$Teams=array();//最终结果
$mids=array($mid);//第一次执行时候的用户id
do {
$othermids=array();
$state=false;
foreach ($mids as $valueone) {
foreach ($members as $key =>$valuetwo) {
if($valuetwo['higher_level_id']==$valueone){
$Teams[]=$valuetwo['id'];//找到我的下级立即添加到最终结果中
$othermids[]=$valuetwo['id'];//将我的下级id保存起来用来下轮循环他的下级
array_splice($members,$key,1);//从所有会员中删除他
$state=true;
}
}
}
$mids=$othermids;//foreach中找到的我的下级集合,用来下次循环
}while ($state==true);
return $Teams;
}
//获取一个用户的最顶级
public static function merchants_sub($higher_level_id, $array = [])
{
$merchants_users = \app\admin\model\SystemAdmin::where('id', $higher_level_id)->find()->toArray();
// dump($merchants_users);die;
$array[] = $merchants_users;
if ($merchants_users['higher_level_id']) {
return self::merchants_sub($merchants_users['higher_level_id'], $array);
}
return $array;
}