这样的数组,如何通过下级的id,递归来获取所有的上级信息跪求!

$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,递归来获取上级的所有信息?是否还有不通过递归的方式可以快速获取的?
Cats萌萌
浏览 334回答 2
2回答

POPMUISE

for(variin$all){if($id==$all[i][0]){//具体内容return$all[i][1]//或者return$all[i][2]}}//这样递归有什么问题吗?为什么不能使用递归呢?

慕田峪4524236

可以先对$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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript