<?php
$arr = array(
0=>array('id'=>1,'pid'=>0,'name'=>'亚洲'),
1=>array('id'=>2,'pid'=>0,'name'=>'北美洲'),
2=>array('id'=>3,'pid'=>1,'name'=>'中国'),
3=>array('id'=>4,'pid'=>2,'name'=>'美国'),
4=>array('id'=>5,'pid'=>3,'name'=>'北京'),
5=>array('id'=>6,'pid'=>3,'name'=>'上海'),
6=>array('id'=>7,'pid'=>5,'name'=>'海淀区'),
);
//无限极分类查找子孙树
function getFam($arr,$id)
{
$temp=array();
$task=array($id);
while(!empty($task))
{
$flag=false;
foreach($arr as $k=>$v)
{
if($v['pid']==$id)
{
$temp[]=$v;
unset($arr[$k]);
array_push($task,$v['id']);
$id=$v['id'];
$flag=true;
}
}
if($flag==false)
{
array_pop($task);
$id=end($task);
}
}
return $temp;
}
echo '<pre >';
print_r(getFam($arr,0));
?>
php利用栈使用迭代法实现无限级分类
最新推荐文章于 2020-05-24 16:36:26 发布