$arr=[
[
'id'=>1,
'pid'=>0,
'name'=>'name1',
],
[
'id'=>2,
'pid'=>0,
'name'=>'name2',
],
[
'id'=>3,
'pid'=>0,
'name'=>'name3',
],
[
'id'=>4,
'pid'=>1,
'name'=>'name4',
],
[
'id'=>5,
'pid'=>4,
'name'=>'name5',
],
[
'id'=>6,
'pid'=>2,
'name'=>'name6',
],
[
'id'=>7,
'pid'=>2,
'name'=>'name7',
],
];
排序过会得出
$result=[
[
'id'=>1,
'pid'=>0,
'name'=>'name1',
'level'=>1,
],
[
'id'=>4,
'pid'=>1,
'name'=>'name4',
'level'=>2,
],
[
'id'=>5,
'pid'=>4,
'name'=>'name5',
'level'=>3,
],
[
'id'=>2,
'pid'=>0,
'name'=>'name2',
'level'=>1,
],
[
'id'=>7,
'pid'=>2,
'name'=>'name7',
'level'=>'2',
],
[
'id'=>6,
'pid'=>2,
'name'=>'name6',
'level'=>2,
]
[
'id'=>3,
'pid'=>0,
'name'=>'name3',
'level'=>1,
],
];
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
$arr = array( '1'=>array('id'=>1, 'pid'=>0,), '2'=>array('id'=>2, 'pid'=>0,), '3'=>array('id'=>3, 'pid'=>1,), '4'=>array('id'=>4, 'pid'=>3,), '5'=>array('id'=>5, 'pid'=>2), ); $topid = $id = 2; while($arr[$topid]['pid'] > 0) { $topid = $arr[$topid]['pid']; } echo $topid;
答案来源于网络