当前位置: 首页 > 后端技术 > PHP

使用递归实现多级分享机制

时间:2023-03-29 22:36:13 PHP

classInvitationextendsController{protected$friend_list=array();protected$level=1;//获取好友列表publicfunctioninvite_friends_list($my_all_friends=null,$begin=false){$uid=\Auth::user()->编号;if(!$begin&&empty($my_all_friends)){$my_all_friends=InvitationRelation::select('user_id')->where('fuid',$uid)->get()->toArray();$this->friend_list[$uid]=$my_all_friends;array_push($this->friend_list[$uid],array('level'=>$this->level));}foreach($my_all_friendsas$friend_id){if(!empty($friend_id)){//Log::info('这??是邀请好友的id:',$friend_id);$my_all_friends=InvitationRelation::select('user_id')->where('fuid',$friend_id)->get()->toArray();//Log::info('等级:',$my_all_friends);if(count($my_all_friends)>0){$this->level++;$this->friend_list[$friend_id['user_id']]=$my_all_friends;array_push($this->friend_list[$friend_id['user_id']],array('level'=>$this->level));试试{$this->invite_friends_list($my_all_friends,true);}catch(\Exception$e){return\Response::json(['status'=>'error','error_msg'=>'获取失败'],422);}}继续;}}return\Response::json($this->friend_list);}}结果:{"1":[{"user_id":2},{"user_id":3},{"user_id":4},{"level":1}],"2":[{"user_id":5},{"user_id":6},{"user_id":7},{"user_id":8},{"level":2}],"7":[{"user_id":9},{"user_id":10},{"user_id":11},{"level":3}],"8":[{"user_id":12},{"user_id":13},{"user_id":14},{"user_id":15},{"level":4}],"13":[{"user_id":20},{"user_id":21},{"user_id":22},{"user_id":23},{"level":5}],"15":[{"user_id":16},{"user_id":17},{"user_id":18},{"user_id":19},{"level":6}],"18":[{"user_id":24},{"user_id":25},{"user_id":26},{"user_id":27},{"user_id":28},{"level":7}]}