为了账号安全,请及时绑定邮箱和手机立即绑定

php 递归返回值的问题

php 递归返回值的问题

PHP
ibeautiful 2019-03-10 08:10:19
php 递归返回值的问题 请大佬帮我看看 递归循环 查找上级 在循环里面打印数据全部拿到了,但是return 返回数据后却是空,请问是怎么回事?? public function for_enter($data=array(),$level=0,$shu=array(),$s=0){ $ui = M('ui'); $array = array(); $where['is_enter'] = 1; foreach ($data as $k => $v) { $child = $ui->where(array('code'=>$v['pcode']))->select(); if (empty($child)) { return ''; }else{ if ($child[0]['level'] == 4) { $this->for_enter($child,$level,''); }else{ if ($child[0]['is_enter'] == 1) { if (($level - $child[0]['level']) == 3) { $shu['three'] = $child[0]; $this->for_enter($child,$level,$shu); } if (($level - $child[0]['level']) == 2) { $shu['tow'] = $child[0]; $this->for_enter($child,$level,$shu); } if (($level - $child[0]['level']) == 1) { //判断是几级 $shu['one'] = $child[0]; $this->for_enter($child,$level,$shu); } } } } $array[] = $shu; } return $array; } 打印数据 返回数据
查看完整描述

2 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

其实我看到你说返回值为空我大概就知道问题在哪里了,直接看了一下你递归调用函数的部分。如果没错的话,你第一个应该是直接进入了 $child[0]['level'] == 4 的条件内,返回的直接为默认的 $shu = array()

查看完整回答
反对 回复 2019-03-18
?
HUX布斯

TA贡献1876条经验 获得超6个赞

在这个地方dump两个值就知道了https://img1.sycdn.imooc.com//5c8f3dc400017d8d03580179.jpg

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 695 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信