在很多地方我们都需要用到无限分类,今天给大家简单的介绍一下关于PHP实现无限分类的几种方式。
递归方式
这种方式也是大家比较常用的一种方式,先来看一下主要的表结构。
id: 自增id
name: 分类名称
parent_id: 父类id,顶级类值为0
sort: 排序值
代码部分:
引用方式
其实PHP引用是一个不错的东东,可以使用引用来组织数据。
基于左右编码值
这种方式的关键点在于数据库的设计,主要表结构如下:
id: 自增id
name: 分类名称
lft: 左值
rgt: 右值
level: 层级数
具体看一个比较形象的例子,如水果的分类
Food : 食物
Fruit : 水果
Red : 红色
Cherry: 樱桃
Yellow: 黄色
Banana: 香蕉
Meat : 肉类
Beef : 牛肉
Pork : 猪肉
把上面的分类,组织成一个二叉树的结构,并在每个分类的左右标值,如下图:
从图中来看,我们要得到水果下面的所有分类,那么只需要用到下面的SQL语句:
通过下面代码便可很快的输出树形结构