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>