首页 >后端开发 >php教程 >php中的无限极分类

php中的无限极分类

不言
不言原创
2018-05-31 17:34:351900浏览

这篇文章主要介绍了关于php中的无限极分类,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

1.首先无限极分类对应的表的结构

| cate_id    | cate_name|  parentid(默认0)|
| --------   | -----:   | :----: |
| 1          | 键盘     |   0    |
| 2          | 机械键盘  |   1    |
| 3          | cherry键盘|  2    |

这里面能看出来cherry的parentid的值等于等于他上一级的cate_id,这也就是无限极分类的核心

2.无限分类功能就是把数据库中的数据从新排序
控制器下代码:

public function index(){
    $cate = D('category')->catetree();    
    $this->assign('cate',$cate);        
    $this->display();
    }

这里$cate调用catetree()方法,那么下面我们对应的Model里面的代码

Model下的代码:public function catetree(){
    $data = $this->select();    
    return $this->resort($data);
   }

首先查询对应category表里面的所有数据并return一个新的方法

public function resort($data,$parentid=0,$level=0){
    static $ret = array();    foreach ($data as $key => $v) {        
    if ($v['parentid']==$parentid) {        
    $v['level']=$level;        
    $ret[]=$v;       
    $this->resort($data,$v['cate_id'],$level+1);
        }
    }    return $ret ;
}

首先生成一个静态数组,然后把catetree()方法传过来的$data进行遍历,判断条件就是为了找到顶级那条数据。先把顶级那条数据保存到静态数组里面,然后在调用本身,并且把顶级栏目的id做为参数传出去。
这样一来$parentid=$v['cate_id']
最终无线分类的功能就做完了!

相关推荐:

php中的实物回滚

PHP中的密码加密的解决方案总结

以上是php中的无限极分类的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn