无限级递归查找下级(PHP)

1、无限级递归查找下级

(1)调用

public function tree() {
	$id = (I('get.id'));
	$xiaji = Db::name('users')->where('FIND_IN_SET(' . $id . ',leader_arr)')->field('user_id,nickname,head_pic,level,first_leader')->select();//查找出所有下级用户
	$json = $this->xiaji($xiaji, $id);//无限极递归下级归属
	//        halt($json);
	$json = json_encode($json);
	$this->assign('json', $json);
	return $this->fetch();
}

(2)下级递归方法

public function xiaji($xiaji, $pid) {
	$ret = [];//定义空数组
	//循环遍历
	foreach ($xiaji as $k => $v) {
		if ($v['first_leader'] == $pid) {//如果上级id 和当前传递的id相等插入数组
			$v['id'] = $v['user_id'];
			$v['name'] = $v['nickname'];
			$v['position'] = $v['level'];
			$v['photos'] = $v['head_pic'];
			unset($xiaji[$k]);//删除已经插入数组的数据不然会无限循环
			$v['children'] = $this->xiaji($xiaji, $v['user_id']);//循环剩余的内容放到它的下级
			$ret[] = $v;//赋值到数组
		}
	}
	return $ret;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值