无极限分类
1.效果

2.二维数组(从表中读取到)
$arr=array( 1=>array('id'=>'1','name'=>'北京','pid'=>'0'), 2=>array('id'=>'2','name'=>'上海','pid'=>'0'), 3=>array('id'=>'3','name'=>'浦东','pid'=>'2'), 4=>array('id'=>'4','name'=>'朝阳','pid'=>'1'), 5=>array('id'=>'5','name'=>'广州','pid'=>'0'), 6=>array('id'=>'6','name'=>'三里屯','pid'=>'4'), 7=>array('id'=>'7','name'=>'广东','pid'=>'5'), 8=>array('id'=>'8','name'=>'三里','pid'=>'4'), 10=>array('id'=>'10','name'=>'小胡同','pid'=>'8') );
3.无极限分类
function GetTree($arr,$pid,$step){ global $tree; foreach($arr as $key=>$val) { if($val['pid'] == $pid) { $flg = str_repeat('-----',$step); $val['name'] = $flg.$val['name']; $tree[] = $val; GetTree($arr , $val['id'] ,$step+1); } } return $tree; }
4.整体代码
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<?php
$arr=array(
1=>array('id'=>'1','name'=>'北京','pid'=>'0'),
2=>array('id'=>'2','name'=>'上海','pid'=>'0'),
3=>array('id'=>'3','name'=>'浦东','pid'=>'2'),
4=>array('id'=>'4','name'=>'朝阳','pid'=>'1'),
5=>array('id'=>'5','name'=>'广州','pid'=>'0'),
6=>array('id'=>'6','name'=>'三里屯','pid'=>'4'),
7=>array('id'=>'7','name'=>'广东','pid'=>'5'),
8=>array('id'=>'8','name'=>'三里','pid'=>'4'),
10=>array('id'=>'10','name'=>'小胡同','pid'=>'8')
);
function GetTree($arr,$pid,$step){
global $tree;
foreach($arr as $key=>$val) {
if($val['pid'] == $pid) {
$flg = str_repeat('-----',$step);
$val['name'] = $flg.$val['name'];
$tree[] = $val;
GetTree($arr , $val['id'] ,$step+1);
}
}
return $tree;
}
$newarr = GetTree($arr, 0, 0);
// var_dump($newarr);
$str='<table width="400" border="1" cellspacing="0" cellpadding="0">';
foreach($newarr as $k=>$v){
$str.="<tr>";
$str.="<td>".$v['id']."</td>";
$str.="<td>".$v['name']."</td>";
$str.="<td>修改 删除</td>";
$str.="</tr>";
}
$str.="</table>";
echo $str;
?>
<table>
<tr>
<td></td>
</tr>
</table>
</body>
</html>
浙公网安备 33010602011771号