对于经常做导航或者文章分类的人来说,无限级分类相信大家并不陌生,那么我们该如何来实现并使用api输出呢?今天就给大家分享这个功能代码,只要理解递归算法就很简单。
无限级分类遍历功能代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | /** * @description: 递归算法-无限极分类生成 * @param $data 需要分类的二维数组 * @param $fid 上级栏目id * @param $fidname 原数据的上级分类字段名 * @return array */ function cate_tree($data, $fid, $fidname = 'fid') { $list = []; foreach ($data as $key => $v) { if ($v[$fidname] == $fid) { $temp = cate_tree($data, $v['id'], $fidname); //如果是非空就赋值数据 if (!empty($temp)) { $v['children'] = $temp; } $list[] = $v; unset($temp); //销毁变量 unset($v); //销毁变量 } } return $list; } |
调用代码:
1 2 3 4 5 | //获取数据库数据 $resdata = Db::table('doc_menu')->field('id,name as title,fid')->select()->toarray(); $data = cate_tree($resdata, 0, 'fid'); //print_r($data); return json(apiout(0,'成功',$data)); |
以上是小超越工作室使用Thinkphp做的调用演示,大家可以根据自己的项目,自行进行修改。
转载请保留本文链接:https://www.zhe94.com/801.html