刚开始学php,经过一番苦难,终于测试成功。记录一下,也方便他人。
从数据库动态读取菜单数据 的php代码,带ul li 标签。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<title>php二级菜单</title>
</head>
<body>
<?php
$data = array
(
array("id"=>1,"name"=>"公司简介","parent_id"=>0,"deep"=>0),
array("id"=>2,"name"=>"产品介绍","parent_id"=>0,"deep"=>0),
array("id"=>3,"name"=>"产品介绍1","parent_id"=>0,"deep"=>0),
array("id"=>4,"name"=>"产品介绍2","parent_id"=>0,"deep"=>0),
array("id"=>5,"name"=>"产品介绍2-1","parent_id"=>4,"deep"=>1)
);
function getMenu($data,$pid=0,$deep=0)
{
$tree='';
foreach ($data as $row) {
if($row['parent_id']==$pid){
$row['deep']=$deep;
$row['parent_id']=getMenu($data,$row['id'],$deep+1);
$tree[]=$row;
}
}
return $tree;
}
$aa=getMenu($data);
function procHtml($menus)
{
$html = '';
if(is_array($menus)) {
foreach ($menus as $t) {
if ($t['parent_id'] == '') {
$html .= "<li>{$t['name']}</li>";
} else {
$html .= "<li>" . $t['name'];
$html .= procHtml($t['parent_id']);
$html = $html . "</li>";
}
}
}
return $html ? '<ul>'.$html.'</ul>' : $html ;
}
$bb= procHtml($aa);
echo $bb;
?>
</body>
</html>