分享一个找无限下级的算法

浏览:3085 发布日期:2018/06/23 分类:基础算法
最近因为业务原因需要用到一个功能,需要把某些会员的无限下级全部都找出来,刚刚开始的时候直接用递归查询的,但是发现这样特别慢,几万个就要找十几分钟了,根本没法忍下去,所以自己就专门研究了一下,算了,直接进入正题,代码在下面,不理解可以问我,这里我试了下,两万多个的在本地测试花了6秒左右,用服务器就花了2秒钟
//数据必须根据uid 正序进来
public function GetTeamMember($members, $mid) {
$Teams=array();//最终结果
$Teams[] = $mid;
foreach ($members as $k=>$v) {
if (in_array($v['active_uid'], $Teams,true) && !in_array($v['uid'], $Teams,true)) {
$Teams[] = $v['uid'];
unset($members[$k]);
} else {
unset($members[$k]);
}

}
//因为获取的是第一个会员下级,所以删除第一个会员
unset($Teams[0]);
return $Teams;
}
评论( 相关
后面还有条评论,点击查看>>