zoukankan      html  css  js  c++  java
  • PHP无限级分类

    一、数据格式
    $arr = Array
    (
        [0] => Array
            (
                [cat_id] => 1
                [cat_name] => 关于我们
                [sort_order] => 0
                [parent_id] => 0
            )
    
        [1] => Array
            (
                [cat_id] => 2
                [cat_name] => 站内公告
                [sort_order] => 0
                [parent_id] => 0
            )
    
        [2] => Array
            (
                [cat_id] => 3
                [cat_name] => 促销咨询
                [sort_order] => 0
                [parent_id] => 0
            )
    
        [3] => Array
            (
                [cat_id] => 4
                [cat_name] => 售前答疑
                [sort_order] => 0
                [parent_id] => 2
            )
    
        [4] => Array
            (
                [cat_id] => 5
                [cat_name] => 售后答疑
                [sort_order] => 0
                [parent_id] => 2
            )
    
        [5] => Array
            (
                [cat_id] => 6
                [cat_name] => 企业文化
                [sort_order] => 0
                [parent_id] => 0
            )
    
        [6] => Array
            (
                [cat_id] => 11
                [cat_name] => 企业发展历程
                [sort_order] => 0
                [parent_id] => 1
            )
    
        [7] => Array
            (
                [cat_id] => 12
                [cat_name] => 首页公告
                [sort_order] => 0
                [parent_id] => 2
            )
    
    )
    
    二、无限级分类实现
    
    class ArticleCat{
        //筛选分类数据
        public function getCatTree($arr,$id = 0,$lev = 0) {
            $tree = array();
            
            foreach ($arr as $v){
                if ($v['parent_id'] == $id){
                    $v['lev'] = $lev;
                    $tree[] = $v;
                    
                    $tree = array_merge($tree,$this->getCatTree($arr,$v['cat_id'],$lev+1));
                }
            }
            return $tree;
        }
    
    
    }
    
    三、调用方式
    $catModel = new ArticleCat();
    $catList = $catModel->getCatTree($arr);
    
    四、返回数据格式
    $catList = Array
    (
        [0] => Array
            (
                [cat_id] => 1
                [cat_name] => 关于我们
                [sort_order] => 0
                [parent_id] => 0
                [lev] => 0
            )
    
        [1] => Array
            (
                [cat_id] => 11
                [cat_name] => 企业发展历程
                [sort_order] => 0
                [parent_id] => 1
                [lev] => 1
            )
    
        [2] => Array
            (
                [cat_id] => 2
                [cat_name] => 站内公告
                [sort_order] => 0
                [parent_id] => 0
                [lev] => 0
            )
    
        [3] => Array
            (
                [cat_id] => 4
                [cat_name] => 售前答疑
                [sort_order] => 0
                [parent_id] => 2
                [lev] => 1
            )
    
        [4] => Array
            (
                [cat_id] => 5
                [cat_name] => 售后答疑
                [sort_order] => 0
                [parent_id] => 2
                [lev] => 1
            )
    
        [5] => Array
            (
                [cat_id] => 12
                [cat_name] => 首页公告
                [sort_order] => 0
                [parent_id] => 2
                [lev] => 1
            )
    
        [6] => Array
            (
                [cat_id] => 3
                [cat_name] => 促销咨询
                [sort_order] => 0
                [parent_id] => 0
                [lev] => 0
            )
    
        [7] => Array
            (
                [cat_id] => 6
                [cat_name] => 企业文化
                [sort_order] => 0
                [parent_id] => 0
                [lev] => 0
            )
    
    )
    
    五、在前端直接遍历的效果(此处以ThinkPHP模板为例)
    <label>文章分类</label>
    <select name='cat_id'style="345px; height:32px; line-height:32px; border-top:solid 1px #c3ab7d; border-left:solid 1px #c3ab7d; border-right:solid 1px #e7d5ba; border-bottom:solid 1px #e7d5ba; background: rgba(0, 0, 0, 0)  repeat-x scroll 0 0;">
    <volist name="catList" id="vo">
    	<option value="<{$vo.cat_id}>"><?php echo str_repeat('    ',$vo['lev']);?><{$vo.cat_name}></option>
    </volist>
    </select>
    
    
    	   
    
     
  • 相关阅读:
    原来发布到主页是发布到博客园的主页啊,还真不知道
    sysobjects
    blend3破解文件,直接覆盖安装目录源文件即可。
    Microsoft Sql中char和varchar的区别与联系
    SQL脚本创建数据表,并给出主键,外键,唯一键,约束
    asp.net调试方法
    VS2010安装项目的系统必备中添加.NET 2.0
    c#,自定义安装,部署,创建自定义操作,自定义操作,安装验证,数据库,安装授权码,接收输入,判断
    Ext2.2系列(50篇)
    C# 获取24小时制的当前系统时间
  • 原文地址:https://www.cnblogs.com/IT-Crowd/p/6407840.html
Copyright © 2011-2022 走看看