当前位置: 首页 / 代码分享 / 正文

PHP递归算法实现无限级分类遍历代码分享

发布时间:2020-09-22 17:00:09 作者:小超越君


对于经常做导航或者文章分类的人来说,无限级分类相信大家并不陌生,那么我们该如何来实现并使用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

小超越
热爱折腾,曾想着改变世界,如今只能向生活低头,寻找可口的牛奶和面包
添加站长微信作者头像
专注高品质湛江网站建设及湛江SEO优化服务 立即咨询