加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php创建无限级树型菜单

发布时间:2020-12-12 21:09:24 所属栏目:PHP教程 来源:网络整理
导读:写递归函数,可考虑缓存,定义一些静态变量来存上一次运行的结果,多程序运行效率很有帮助.。 大概步骤如下 : step1: 到数据库取数据,放到一个数组, step2: 把数据转化为一个树型状的数组, step3: 把这个树型状的数组转为html代码。也可以将第二步和

写递归函数,可考虑缓存,定义一些静态变量来存上一次运行的结果,多程序运行效率很有帮助.。 大概步骤如下:

step1:

到数据库取数据,放到一个数组,

step2:

把数据转化为一个树型状的数组,

step3:

把这个树型状的数组转为html代码。 也可以将第二步和第三步合为一步。 详细如下:

1、数据库设计:

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 ? '
    '.$html.'
' : $html ; } echo procHtml($tree); 输出的html的代码格式为:
  • 往事如风
  • 水煮三国
  • 技术学习
    • html
    • css
    • php
      • php基础知识
      • oop
      • php安全

5、也可以把第3和第4步的代码合在一起,代码如下:

$v) { if($v['cate_ParentId'] == $pId) { //父亲找到儿子 $html .= "
  • ".$v['cate_Name']; $html .= getTree($data,$v['cate_Id']); $html = $html."
  • "; } } return $html ? '
      '.$html.'
    ' : $html ; } echo getTree($data,0);

    6、最后再加点css样式,效果如下:

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读