这篇文章主要介绍了关于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']
最终无线分类的功能就做完了!
相关推荐:
Atas ialah kandungan terperinci php中的无限极分类. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!