<?php
/*
利用递归实现无限级分类
*/
//模拟数据
$data = array(
array(
'id' => 1,
'name' => 'java',
'pid' => 0,
),
array(
'id' => 2,
'name' => 'php',
'pid' => 0,
),
array(
'id' => 3,
'name' => 'java基础',
'pid' => 1,
),
array(
'id' => 4,
'name' => 'php基础',
'pid' => 2,
),
array(
'id' => 5,
'name' => 'java数组',
'pid' => 3,
),
array(
'id' => 6,
'name' => 'php变量',
'pid' => 4,
),
);
//递归无限级分类函数
function tree($arr,$id,$level) {
static $sub = array();
foreach($arr as $k=>$v) {
if($v['pid'] == $id) {
$v['level'] = $level;
$sub[] = $v;
tree($arr,$v['id'],$level+1);
}
}
return $sub;
}
$result = tree($data,0,1);
//输出
foreach($result as $v) {
$pre = '|'.str_repeat('--',$v['level']);
echo $pre.$v['name'].'<br/>';
}
/*
|--java
|----java基础
|------java数组
|--php
|----php基础
|------php变量
*/