都说无限级分类很难,无非就是遍历、递归一个数组,下面给大家分享一个无限级分类代码,该代码适用于ThinkPHP5以上版本
具体实现看图:
控制器层:
公共文件:common.php中这样写
是不是很简单,其实不难,细心思考代码就run起来啦!
下面附上代码:
控制器层:
<?php
namespace app\imdex\controller;
use think\Controller;
use app\index\model\Category as CategoryModel;
use think\Db;
class Index extends Base
{
public function index() {
$category = CategoryModel::all();
$arrs = [];
$cateNodes = json_encode(recur($arrs,$category));
echo $cateNodes; //这里一定要用echo 不然不会报错数据读不出来
}
}
公共层:common.php
<?php
//应用公共文件
function recur($arrs,$category,$parent_id = 0)
{
foreach ($category as $k => $v) {
if($v['pid'] == $parend_id)
{
$arr = array('id'=>$v['id'],'children'=>array());
//少一行代码,现在补上,之前复制代码出错却百思不得其解的小伙伴们,致以诚挚的道歉!
$arr['children'] = recur($arr['children'],$category,$v['id']);
array_push($arrs,$arr);
}
}
return $arrs;
}