$all=[['id'=>1,'pid'=>0,'title'=>'上海公司'],['id'=>2,'pid'=>1,'title'=>'经理'],['id'=>3,'pid'=>2,'title'=>'主管'],['id'=>4,'pid'=>0,'title'=>'北京公司'],['id'=>5,'pid'=>4,'title'=>'经理'],['id'=>6,'pid'=>5,'title'=>'主管'],];functiongetInfo($id,$all){//如何通过下级的ID,递归来获取上级的所有信息?}getInfo(3);getInfo(6);数组如上getInfo(3);getInfo(6);如何通过下级的ID,递归来获取上级的所有信息?是否还有不通过递归的方式可以快速获取的?
2 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
for(variin$all){if($id==$all[i][0]){//具体内容return$all[i][1]//或者return$all[i][2]}}//这样递归有什么问题吗?为什么不能使用递归呢?
收到一只叮咚
TA贡献1821条经验 获得超4个赞
可以先对$all数组先做一下预处理$all=[['id'=>1,'pid'=>0,'title'=>'上海公司'],['id'=>2,'pid'=>1,'title'=>'经理'],['id'=>3,'pid'=>2,'title'=>'主管'],['id'=>4,'pid'=>0,'title'=>'北京公司'],['id'=>5,'pid'=>4,'title'=>'经理'],['id'=>6,'pid'=>5,'title'=>'主管'],];functionindex($array,$key){$result=[];foreach($arrayas$element){if(isset($element[$key])&&$element[$key]){$value=$element[$key];$result[$value]=$element;}}return$result;}$all=index($all,'id');functiongetInfo($id,$all){returnisset($all[$id])?$all[$id]:null;}$a=getInfo(3,$all);$b=getInfo(6,$all);var_dump($a);var_dump($b);
添加回答
举报
0/150
提交
取消