<?php
$arr=array(
array('id'=>1,'name'=>'安徽','parent'=>0),
array('id'=>2,'name'=>'海定','parent'=>7),
array('id'=>3,'name'=>'濉溪县','parent'=>5),
array('id'=>4,'name'=>'昌平','parent'=>7),
array('id'=>5,'name'=>'淮北','parent'=>1),
array('id'=>6,'name'=>'朝阳','parent'=>7),
array('id'=>7,'name'=>'北京','parent'=>0),
array('id'=>8,'name'=>'上地','parent'=>2),
);
//无限级分类,
//0:找指栏目的子栏目
//1:找指定栏目的子孙栏目,即子孙树
//2:找指定栏目的父栏目/父父栏目……顶级栏目,即家谱村
//找子栏目
function findson($arr,$id=0){
//$id栏目的儿子有那些呢?
//数组循环一遍,谁的parent值等于$id,谁就是他儿子
$sons=array();
foreach($arr as $v){
if($v['parent']==$id){
$son[]=$v;
}
}
return $sons;
}
/*
function subtree($arr,$id=0,$lev=1){
static $subs=array();
foreach($arr as $v){
if($v['parent']==$id){
$v['lev']=$lev;
$subs[]=$v;
subtree($arr,$v['id'],$lev+1);
}
}
return $subs;
}
*/
function subtree($arr,$id=0,$lev=1){
$subs=array();
foreach($arr as $v){
if($v['parent']==$id){
$v['lev']=$lev;
$subs[]=$v;
$subs=array_merge($subs,subtree($arr,$v['id'],$lev+1));
}
}
return $subs;
}
$tree=subtree($arr,0);
foreach($tree as $v){
echo str_repeat('__',$v['lev']),$v['name'],'<br />';
}
无限级分类求子孙树
最新推荐文章于 2021-03-29 00:38:54 发布