<p>因项目需要需要统计用户无限下级计算分销佣金,计算每月分红,计算无限下级团队的业绩,需要先获得某个会员的无限下级成员。</p><p>先看看数据库中的member表字段</p><p><p style="text-align: center;"><img src="/upload/content/20190119/1547879656281106.png" alt="PHP无限查询下级,PHP递归统计下级总数,PHP获取无限子级"title="PHP无限查询下级,PHP递归统计下级总数,PHP获取无限子级" width="550px"></p><p><strong>1、递归模式</strong></p><p>private $members;//保存二级分享所有团队人员</p><pre class="brush:php;toolbar:false">/* * 计算某个用户无限下级. * 返回的数据并不包含用户自身. * $mid为某用户的id */ public function GetTeamMember($mid) { $Tempmerbers=pdo_fetchall("select id,openid from ". tablename('ewei_shop_member')." where agentid=".$mid);//查询id为mid的用户的直接下级 $this->members=array_merge($this->members,$Tempmerbers);//查询结果保存到私有属性members中 if(count($Tempmerbers)>0){//再将上面查询到的直接下级递归查询下级 foreach ($Tempmerbers as $value) { $this->GetTeamMember($value['id']); } } }</pre><p><span style="color: rgb(0, 112, 192);">注意:因为PHP在递归方面限制层级厉害,无限下级不建议采用。</span></p><p><strong>2、非递归模式</strong></p><pre class="brush:php;toolbar:false">//1.整个会员表的数据 $member = array( array('id'=>1, 'agentid'=>0, 'nickname' => 'A'), array('id'=>2, 'agentid'=>1, 'nickname' => 'B'), array('id'=>3, 'agentid'=>1, 'nickname' => 'C'), array('id'=>4, 'agentid'=>8, 'nickname' => 'D'), array('id'=>5, 'agentid'=>3, 'nickname' => 'E'), array('id'=>6, 'agentid'=>3, 'nickname' => 'F'), array('id'=>7, 'agentid'=>3, 'nickname' => 'G'), array('id'=>8, 'agentid'=>8, 'nickname' => 'H') ); /* *2.获取某个会员的无限下级方法 *$members是所有会员数据表,$mid是用户的id */ 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['agentid']==$valueone){ $Teams[]=$valuetwo[id];//找到我的下级立即添加到最终结果中 $othermids[]=$valuetwo['id'];//将我的下级id保存起来用来下轮循环他的下级 array_splice($members,$key,1);//从所有会员中删除他 $state=true; } } } $mids=$othermids;//foreach中找到的我的下级集合,用来下次循环 } while ($state==true); return $Teams; } $res=GetTeamMember($member ,1); var_dump($res);</pre><p>好了,以上就是关于“PHP无限查询下级,PHP递归统计下级总数,PHP获取无限子级”的全部内容了,小伙伴们如果有更好的建议,欢迎到文章下面的评论区留言告诉我们。<br/></p>