控制器中先定义两个数组
public $data_info = []; public $data_ids = [];
调用 时候$s1_id为当前用户的上级ID
$lists = $this->getWinfo($s1_id);//获取用户所有的上级
public function getWinfo($id,$i=''){ if(empty($id)){ return $this->data_info; } //传过来的是上级id $infos = Db::name('user')->where('id',$id)->find(); if(!empty($infos)){ $this->data_info[] = $infos; //出重,防止死循环 if(!in_array($infos['s1id'],$this->data_ids)){ $this->data_ids[] = $infos['s1id']; return $this->getWinfo($infos['s1id']); } } return $this->data_info; }