亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這樣的數組,如何通過下級的id,遞歸來獲取所有的上級信息跪求!

這樣的數組,如何通過下級的id,遞歸來獲取所有的上級信息跪求!

Cats萌萌 2019-09-26 10:03:03
$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 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

for(variin$all){
if($id==$all[i][0]){
//具體內容
return$all[i][1]
//或者
return$all[i][2]
}
}//這樣遞歸有什么問題嗎?為什么不能使用遞歸呢?
                            
查看完整回答
反對 回復 2019-09-26
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

可以先對$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);
                            
查看完整回答
反對 回復 2019-09-26
  • 2 回答
  • 0 關注
  • 346 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號