zoukankan      html  css  js  c++  java
  • php实现无限级树型菜单(函数递归算法)

    function getTree($data, $pId)
    {
        $tree = '';
        foreach($data as $k => $v)
        {
            if($v['cate_ParentId'] == $pId)
            {         //父亲找到儿子
                $v['cate_ParentId'] = getTree($data, $v['cate_Id']);
                $tree[] = $v;
                //unset($data[$k]);
            }
        }
        return $tree;
    }
    $data=Db::table("bg_cate")->select();
    $tree = getTree($data, 0);
    function procHtml($tree)
    {
        $html = '';
        foreach($tree as $t)
        {
            if($t['cate_ParentId'] == '')
            {
                $html .= "<li>{$t['cate_Name']}</li>";
            }
            else
            {
                $html .= "<li>".$t['cate_Name'];
                $html .= procHtml($t['cate_ParentId']);
                $html = $html."</li>";
            }
        }
        return $html ? '<ul>'.$html.'</ul>' : $html ;
    }
    echo procHtml($tree);
    CREATE TABLE `bg_cate` (
    `cate_Id` int(30) unsigned NOT NULL AUTO_INCREMENT,
    `cate_ParentId` int(30) unsigned DEFAULT '0',
    `cate_Name` varchar(100) NOT NULL,
    `cate_Intro` varchar(500) DEFAULT NULL,
    `cate_Order` int(30) unsigned DEFAULT '0',
    `cate_Icon` varchar(100) DEFAULT NULL,
    PRIMARY KEY (`cate_Id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=34 ;
    
    -- 
    -- 导出表中的数据 `bg_cate`
    --
    
    INSERT INTO `bg_cate` (`cate_Id`, `cate_ParentId`, `cate_Name`, `cate_Intro`, `cate_Order`, `cate_Icon`) VALUES 
    (4, 0, '往事如风', '记录往事', 0, 'icons/6.gif'),
    (5, 0, '水煮三国', '品位三国智慧', 0, 'icons/3.gif'),
    (2, 0, '技术学习', '平时学习的一些笔记,欢迎批评指正。', 0, 'icons/18.gif'),
    (3, 0, '生活点滴', '记录生活点滴', 0, 'icons/2.gif'),
    (6, 0, '栀子花开', '青春无限', 0, 'icons/8.gif'),
    (7, 0, '假日休闲', '悠闲、自在', 0, 'icons/24.gif'),
    (8, 2, 'html', 'html学习', 0, 'icons/1.gif'),
    (9, 2, 'css', 'css学习', 0, 'icons/1.gif'),
    (10, 2, 'php', 'php学习', 0, 'icons/18.gif'),
    (11, 10, 'php基础知识', 'php基础知识', 0, 'icons/1.gif'),
    (12, 10, 'oop', 'oop', 0, 'icons/1.gif'),
    (13, 10, 'php安全', '讲述php安全', 0, 'icons/1.gif'),
    (14, 10, 'seagull framework', 'seagull framework', 0, 'icons/1.gif'),
    (15, 2, 'javascript', 'javascript学习', 0, 'icons/1.gif'),
    (16, 2, '设计模式', NULL, 0, 'icons/1.gif'),
    (17, 2, '软件工程', '软件工程学习', 0, 'icons/1.gif'),
    (18, 3, '厦门生活', '厦门生活', 0, 'icons/8.gif'),
    (19, 3, '大学生活', '大学生活', 0, 'icons/8.gif'),
    (20, 3, '童年生活', '童年生活', 0, 'icons/15.gif'),
    (21, 19, '学习', '学习', 0, 'icons/1.gif'),
    (22, 19, '运动', '运动', 0, 'icons/16.gif'),
    (23, 19, '旅游', '旅游', 0, 'icons/24.gif'),
    (24, 22, '排球', '排球', 0, 'icons/9.gif'),
    (25, 22, '篮球', '篮球', 0, 'icons/9.gif'),
    (26, 22, '羽毛球', '羽毛球', 0, 'icons/9.gif'),
    (27, 22, '乒乓球', '乒乓球', 0, 'icons/9.gif');
  • 相关阅读:
    Hibernate save, saveOrUpdate, persist, merge, update 区别
    Eclipse下maven使用嵌入式(Embedded)Neo4j创建Hello World项目
    Neo4j批量插入(Batch Insertion)
    嵌入式(Embedded)Neo4j数据库访问方法
    Neo4j 查询已经创建的索引与约束
    Neo4j 两种索引Legacy Index与Schema Index区别
    spring data jpa hibernate jpa 三者之间的关系
    maven web project打包为war包,目录结构的变化
    创建一个maven web project
    Linux下部署solrCloud
  • 原文地址:https://www.cnblogs.com/741570hh/p/6879118.html
Copyright © 2011-2022 走看看