无限级分类多用于商品的分类
其原理就是调用函数体本身,通过传递的参数不同,则查出的数据不同
无限级分类对表的设计有着要求,子类中必须有父类的id,如果是顶级分类id则父级id(parent_id)的值为0
表字段:
cat_id(自增id) cat_name(名称) parent_id(父类id)
代码实现:
//无限级分类
public function always_category($path=0)
{
$data = Db::table('category')->field(['cat_id','cat_name','parent_id'])->where(['parent_id'=>$path])->select();
foreach($data as $key=>$val)
{
$son = $this->always_category($val['cat_id']);
if(!empty($son))
{
$data[$key]['son'] = $son;
}
}
return $data;
}
查出的结果格式如下:
Array
(
[0] => Array
(
[cat_id] => 28
[cat_name] => 手机、数码
[parent_id] => 0
[son] => Array
(
[0] => Array
(
[cat_id] => 29
[cat_name] => 手机通讯
[parent_id] => 28
[son] => Array
(
[0] => Array