2024-10-23 03:31:20 | 我爱编程网
这个需要用程序递归处理
$dept_tree=[];
$deptid = 19;
while($deptid>0){
//假设你的数据库查询是这个函数,根据条件直接查询一条记录返回
$dept = getone('department',['id'=>$deptid]);
//防止数据丢失出错
if(empty($dept))break;
array_unshift($dept_tree,$dept);
$deptid = $dept['dep_parentid'];
//如果需要防止数据错乱出现递归,这里可以判断一下
if(in_array($deptid,array_column($dept_tree,'id') !== false){
//说明职位关系乱了,有死循环
break;
}
}
可以把这段代码封装成一个函数使用。这里就不论从哪一级开始查询了,总是能把该职位及其上级全部查询出来,按顺序放进数组里
$dept_tree 类似这样
我爱编程网
array(
0=>array(
'id'=>1,
'dep_parentid'=>0,
'dep_name'=>'顶级',
),
1=>array(
'id'=>2,
'dep_parentid'=>1,
'dep_name'=>'国灿金融',
),
2=>array(
'id'=>4,
'dep_parentid'=>2,
'dep_name'=>'招聘部',
),
3=>array(
'id'=>19,
'dep_parentid'=>4,
'dep_name'=>'经理助理',
),
)
我爱编程网(https://www.52biancheng.com)小编还为大家带来php递归查询不会,,求教。就是一个三级分类传个ID找到他的上级,还有父级。。的相关内容。
这种类型的数据,一般数据库中,一张表会有存在两个字段,一个是它本身id,另一个是它的父级parent_id。2025-02-01 20:24:39
2024-01-05 14:11:24
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01