<?php
// 测试数据
$rows=array(
array(
'id'=>'1',
'name'=>'php技术',
'pid'=>'0',
'path'=>'0',
),
array(
'id'=>'2',
'name'=>'linux技术',
'pid'=>'0',
'path'=>'0',
),
array(
'id'=>'3',
'name'=>'Thinkphp',
'pid'=>'1',
'path'=>'0-1',
),
array(
'id'=>'4',
'name'=>'系统安装',
'pid'=>'2',
'path'=>'0-2',
),
array(
'id'=>'5',
'name'=>'文件上传',
'pid'=>'3',
'path'=>'0-1-3',
),
array(
'id'=>'6',
'name'=>'硬盘分区',
'pid'=>'4',
'path'=>'0-2-4',
),
array(
'id'=>'7',
'name'=>'软件安装',
'pid'=>'4',
'path'=>'0-2-4',
),
array(
'id'=>'8',
'name'=>'JAVA技术',
'pid'=>'0',
'path'=>'0',
),
array(
'id'=>'9',
'name'=>'分区格式化',
'pid'=>'4',
'path'=>'0-2-4-6',
),
array(
'id'=>'10',
'name'=>'JAVA基础',
'pid'=>'8',
'path'=>'0-8',
),
);
// 递归子级
function findchild(&$arr,$id){
$childs=array();
foreach ($arr as $key => $value) {
if($value['pid']==$id){
$childs[]=$value;
}
}
return $childs;
}
// 查找当前级别的子级
function build_tree($root_id){
global $rows;
$childs=findchild($rows,$root_id);
if(empty($childs)){
return null;
}
foreach ($childs as $key => $value) {
$rescurTree=build_tree($value['id']);
if(null != $rescurTree){
$childs[$key]['childs']=$rescurTree;
}
}
return $childs;
}
$trees=build_tree(0);
echo "<pre>";
print_r($trees);
echo "</pre>";
function show($trees){
$pre='';
$str='';
foreach ($trees as $tree) {
if($tree['pid']>0){
$pre='| '.str_repeat(' - ', substr_count($tree['path'],'-'));
}
$str.=$pre.$tree['name'].'<br/>';
if(isset($tree['childs'])){
$str.=show($tree['childs']);
}
}
return $str;
}
echo show($trees);
?>
PHP无限分类(递归)
猜你喜欢
转载自blog.csdn.net/qq_39649585/article/details/90169669
今日推荐
周排行