Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php中的无限极分类

php中的无限极分类

不言
不言asal
2018-05-31 17:34:351808semak imbas

这篇文章主要介绍了关于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中的密码加密的解决方案总结

Atas ialah kandungan terperinci php中的无限极分类. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn