php创建无限级树型菜单
发布时间:2020-12-12 21:09:24 所属栏目:PHP教程 来源:网络整理
导读:写递归函数,可考虑缓存,定义一些静态变量来存上一次运行的结果,多程序运行效率很有帮助.。 大概步骤如下 : step1: 到数据库取数据,放到一个数组, step2: 把数据转化为一个树型状的数组, step3: 把这个树型状的数组转为html代码。也可以将第二步和
写递归函数,可考虑缓存,定义一些静态变量来存上一次运行的结果,多程序运行效率很有帮助.。
大概步骤如下:
2、到数据库取数据,放到数组:getAll($sql);
//print_r($data);
数据库操作我用的是pear类库,最后的$data的数据格式如下: Array
(
[cate_Id] => 4
[cate_ParentId] => 0
[cate_Name] => 往事如风
[cate_Intro] => 记录往事
[cate_Order] => 0
[cate_Icon] => icons/6.gif
)
[1] => Array
(
[cate_Id] => 5
[cate_ParentId] => 0
[cate_Name] => 水煮三国
[cate_Intro] => 品位三国智慧
[cate_Order] => 0
[cate_Icon] => icons/3.gif
)
3、把上一步的数据转为树型状的数组代码如下: $v)
{
if($v['cate_ParentId'] == $pId)
{ //父亲找到儿子
$v['cate_ParentId'] = getTree($data,$v['cate_Id']);
$tree[] = $v;
//unset($data[$k]);
}
}
return $tree;
}
$tree = getTree($data,0);
最后输出$tree的数据格式为: Array
(
[cate_Id] => 4
[cate_ParentId] =>
[cate_Name] => 往事如风
[cate_Intro] => 记录往事
[cate_Order] => 0
[cate_Icon] => icons/6.gif
)
[1] => Array
(
[cate_Id] => 5
[cate_ParentId] =>
[cate_Name] => 水煮三国
[cate_Intro] => 品位三国智慧
[cate_Order] => 0
[cate_Icon] => icons/3.gif
)
[2] => Array
(
[cate_Id] => 2
[cate_ParentId] => Array
(
[0] => Array
(
[cate_Id] => 8
[cate_ParentId] =>
[cate_Name] => html
[cate_Intro] => html学习
[cate_Order] => 0
[cate_Icon] => icons/1.gif
)
4、把树型状数组转为html代码如下:";
}
}
return $html ? '
5、也可以把第3和第4步的代码合在一起,代码如下: $v)
{
if($v['cate_ParentId'] == $pId)
{ //父亲找到儿子
$html .= "
6、最后再加点css样式,效果如下:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |