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>
    
    
    	   
    
     
  • 相关阅读:
    Response
    servelt乱码问题(tomcat服务端编码为ISO-8859-1)
    Servlet中的常用类以及常用方法
    EKF优化:协方差coff计算公式、意义、Code优化
    使用std::cout不能输出显示
    SLAM: Inverse Depth Parametrization for Monocular SALM
    SLAM: 单目视觉SLAM的方案分类《机器人手册》
    SLAM: SLAM的发展历程(WIKI)
    SLAM: VSLAM扫盲之旅
    安卓系统使用摄像头API
  • 原文地址:https://www.cnblogs.com/IT-Crowd/p/6407840.html
Copyright © 2011-2022 走看看