php 递归无限级分类php
<?php
//递归无限分类树,作者大象
//查询出来的数组
$array = array(
array(
'id' => 1,
'name' => 'dev',
...
<?php
//递归无限分类树,作者大象
//查询出来的数组
$array = array(
array(
'id' => 1,
'name' => 'dev',
'parentid' => 0
),
array(
'id' => 2,
'name' => 'php',
'parentid' => 1
),
array(
'id' => 3,
'name' => 'smarty',
'parentid' => 2
),
array(
'id' => 4,
'name' => 'life',
'parentid' => 0
),
array(
'id' => 5,
'name' => 'pdo',
'parentid' => 2
),
array(
'id' => 6,
'name' => 'pdo-mysql',
'parentid' => 5
),
array(
'id' => 7,
'name' => 'java',
'parentid' => 1
)
);
display_tree("",0);//初次显示树中的根节点
function display_tree($tag,$id) {
global $array;//查询出来的数组,这里申明成常量,为了可以调用外界的$array
$result = findChild($array,$id);//取得当前节点下的所有同级子节点
foreach ($result as $k => $v){
// 缩进显示节点名称
echo $tag.$v['name'] . "<br/>";
//再次调用这个函数显示子节点下的同级子节点
display_tree($tag."|_____|",$v['id']);
}
}
//取得当前节点下的所有同级子节点
function findChild(&$arr,$id){
$childs=array();
foreach ($arr as $k => $v){
if($v['parentid']== $id){
$childs[]=$v;
}
}
return $childs;
}
?>
//递归无限分类树,作者大象
//查询出来的数组
$array = array(
array(
'id' => 1,
'name' => 'dev',
'parentid' => 0
),
array(
'id' => 2,
'name' => 'php',
'parentid' => 1
),
array(
'id' => 3,
'name' => 'smarty',
'parentid' => 2
),
array(
'id' => 4,
'name' => 'life',
'parentid' => 0
),
array(
'id' => 5,
'name' => 'pdo',
'parentid' => 2
),
array(
'id' => 6,
'name' => 'pdo-mysql',
'parentid' => 5
),
array(
'id' => 7,
'name' => 'java',
'parentid' => 1
)
);
display_tree("",0);//初次显示树中的根节点
function display_tree($tag,$id) {
global $array;//查询出来的数组,这里申明成常量,为了可以调用外界的$array
$result = findChild($array,$id);//取得当前节点下的所有同级子节点
foreach ($result as $k => $v){
// 缩进显示节点名称
echo $tag.$v['name'] . "<br/>";
//再次调用这个函数显示子节点下的同级子节点
display_tree($tag."|_____|",$v['id']);
}
}
//取得当前节点下的所有同级子节点
function findChild(&$arr,$id){
$childs=array();
foreach ($arr as $k => $v){
if($v['parentid']== $id){
$childs[]=$v;
}
}
return $childs;
}
?>
上一篇:PHP追加数组的函数
下一篇:php如何获取父类下所有子类Id
我要评论