php电子商品无限规格,无限级分类(上)-TP模块化开发商城----(三)商品分类表及无限级分类-PHP中文网教程...

无限级分类

b957150d93abc611e088727d5163e7fa.png

什么是无限级分类:

无限极分类说简单点就是一个类可以分成一个分子类,然后一个子类又可以分另一个子类这样无限分下去,就是好象windows可以新建一个文件夹,然后在这个文件夹里又可以建一个文件夹。public function index(){

$cate=D('cate');

$cateres=$cate->catetree();

$this->assign('cateres',$cateres);

$this->display();

}

先在index控制器编写模版,$cateres调用catetree()方法。

catetree()方法写在分类模型层如下<?php

namespace Admin\Model;

use Think\Model;

class CateModel extends Model {

protected $_validate = array(

array('catename','require','管理员名称不得为空!',1),

);

public function catetree(){

$data=$this->order('id desc')->select();

return $this->resort($data);

}

public function resort($data,$pid=0,$level=0){

static $arr=array();

foreach ($data as $k => $v) {

if ($v['pid']==$pid) {

$v['level']=$level;

$arr[]=$v;

$this->resort($data,$v['id'],$level+1);

}

}

return $arr;

}

}

下面我们来依次讲解如何实现。

catetree方法

获取数据,$this的意思是调用自身来查询,使用id来进行排序。return返回查询出来的结果。

resort方法

$data:获取的数据

$pid=0:顶级分类0开始

$level=0 分类级别

先创建一个空数组用来存放数据,foreach来遍历,如果$v['pid']==$pid意思是顶级id的话,那么$v['level']=$level也是顶级分类,讲查询的数据存放到数组中,接下来继续调用自身$this->resort($data,$v['id'],$level+1);  这里$data等于$data   $v['id']等于$pid,$level+1代表$level每次加1。查出来的结果如下、

cdf04ad3644c3867d61d3bc41c3aff5d.png

我们继续添加几个来查看

d0170c382a0852172451a170162e529a.png

这就是我们的无限级分类的简单原理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值