php——分享一种扁平数据转树形数据的递归写法

news2024/11/25 18:47:41

简单的列表请求:

    /*
    商品分类列表
    请求方式:get
    请求参数:无
    */
    
    public function lists(){
        if(!$this->request->isGet())$this->error('请求失败,请使用get请求');
        $res = db('type')->select();
        !$res? $this->error('请求失败',[]): $this->success('请求成功',$res);
    }

拿到的数据:

数据表:

使用递归函数:

public function lists(){
        if(!$this->request->isGet())$this->error('请求失败,请使用get请求');
        $res = db('type')->select();
        !$res? $this->error('请求失败',[]) : $this->success('请求成功',['mneu'=>self::toTree($res,0)]);
    }
     // 树形数据
    public function toTree( $admin_menu, $menu_pid){
        $tree = [];
        foreach ($admin_menu as $k => $v) {
            if($v['pid'] == $menu_pid){
                $childData = self::toTree($admin_menu,$v['id']);
                if(count($childData)>0){
                    $v['children'] = self::toTree($admin_menu,$v['id']);
                }
                $tree[] = $v;
            }
        }
        return $tree;
    }

再请求:

用的时候只需改几个变量即可

ヾ( ̄▽ ̄)Bye~Bye~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1561460.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Net8 ABP VNext完美集成FreeSql、SqlSugar,实现聚合根增删改查,完全去掉EFCore

没有基础的,请参考上一篇 彩蛋到最后一张图里找 参考链接 结果直接上图,没有任何业务代码 启动后,已经有了基本的CRUD功能,还扩展了批量删除,与动态查询 动态查询截图,支持分页,排序 实现原理…

ClamAV:Linux服务器杀毒扫描工具

Clam AntiVirus(ClamAV)是免费而且开放源代码的防毒软件,软件与病毒码的更新皆由社群免费发布。ClamAV在命令行下运行,它不将杀毒作为主要功能,默认只能查出系统内的病毒,但是无法清除。需要用户自行对病毒…

AcWing刷题-游戏

游戏 DP l lambda: [int(x) for x in input().split()]n l()[0] w [0] while len(w) < n:w l()s [0] * (n 1) for i in range(1, n 1): s[i] s[i - 1] w[i]f [[0] * (n 1) for _ in range(n 1)]for i in range(1, n 1): f[i][i] w[i]for length in range(2, …

记Kubernetes(k8s)初始化报错:“Error getting node“ err=“node \“k8s-master\“ not found“

记Kubernetes&#xff08;k8s&#xff09;初始化报错&#xff1a;"Error getting node" err"node \"k8s-master\" not found" 1、报错详情2、问题排查3、尝试问题解决 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#…

2003-2022年分国家、分行业、各省对外直接投资流量/存量/OFDI流量/OFDI存量(三份数据合集)

2003-2022年分国家、分行业、各省对外直接投资流量/存量/OFDI流量/OFDI存量 1、时间&#xff1a;更新至2022年&#xff0c;具体时间如下&#xff1a; 2003-2022年各省对外直接投资存量、省对外直接投资流量、省OFDI流量、省OFDI存量数据 2003-2022年中国对外直接投资流量、O…

halcon图像膨胀

1、原理&#xff1a; 使用结构元素在图像上移动&#xff0c;如果结构元素中有任意一个像素和图像上的非零像素重叠&#xff0c;则保留此时结构元素中心所在位置&#xff0c;并将其像素值设置为非零。 2、halcon代码 其中圆形结构元素可设置半径&#xff0c;矩形结构元素设置…

书生·浦语大模型第二期实战营(2)笔记作业

大模型部署 链接: 文档 链接: internstudio 1.部署 InternLM2-Chat-1.8B 模型进行智能对话 2.部署实战营优秀作品 八戒-Chat-1.8B 模型 3.通过 InternLM2-Chat-7B 运行 Lagent 智能体 Demo 4.实践部署 浦语灵笔2 模型 5.熟悉 huggingface 下载功能 from huggingface_hub im…

微信小程序使用textarea默认字数限制以及高度自适应和默认高度设置

<textarea model:value"{{text}}" auto-height placeholder"请输入内容" maxlength"-1" /> auto-height 设置自适应高度 设置之后高度设置无效 maxlength"-1" 解决默认最大字数限制 css // 文本域 textarea { border:…

【软考】系统集成项目管理工程师(二十二)法律法规【2分】

一、合同法 1、内容 当事人的名称或者姓名和住所、标的、数量、质量、价款或者报酬&#xff1b;履行期限、地点和方式&#xff1b;违约责任和解决争议的方法 练一练 【例1-高16下】格式条款是当事人为了重复使用而预先拟定&#xff0c;并在订立合同时未与对方协商的…

Python入门(八)

引入 引入函数 为了减少代码的冗余&#xff0c;减轻我们的工作量&#xff0c;我们常常将代码分块编写&#xff0c;在Python中更是如此&#xff0c;那么我们怎么在一个新的程序文件中调用我们已经编写好程序文件的函数&#xff0c;我们使用import。我们先写一个first.py为例语…

5G PLMN相关概念

PLMN PLMN&#xff08;Public Land Mobile Network&#xff0c;公用陆地移动网络&#xff09;&#xff0c;是由政府或其批准的经营者为公众提供陆地移动通信业务而建立、经营的网络。PLMN与公众交换电话网&#xff08;PSTN&#xff09;互连&#xff0c;形成整个地区或国家规模…

Verilog基础【二】

3.1 Verilog 连续赋值 关键词&#xff1a;assign&#xff0c; 全加器 连续赋值语句是 Verilog 数据流建模的基本语句&#xff0c;用于对 wire 型变量进行赋值。&#xff1a; assign LHS_target RHS_expression &#xff1b;LHS&#xff08;left hand side&#xff09;…

java中:print与println的区别

目录 区别 区别 print是直接打印输出 println是输出后自动回车到下一行 例如 public class test {public static void main(String[] args){System.out.println("换行");System.out.print("不换行");System.out.println();}}——————————————…

STL容器的一些操作(常用的,不全)

目录 string 1.string的一些创建 2.string 的读入和输出&#xff1a; 3.string的一些操作 4.彻底清空string 容器的函数 vector 1.vector的一些创建&#xff1a; 2.vector的一些操作&#xff1a; 3.vector的彻底清空并释放内存&#xff1a; queue 循环队列&#xff1…

Mysql数据备份与恢复实战

文章目录 备份类型备份内容备份工具mysqldump备份 实战案例&#xff1a;恢复误删除的表准备工作2:30完全备份完全备份后更新数据表10:00误删students表需要恢复还原的状态开始还原恢复 为什么要备份&#xff1f; 备份是为了&#xff1a;灾难恢复&#xff1a;硬件故障、软件故障…

维安电子、费斯托中国等20+智能制造企业共探渠道管理数字化

近日&#xff0c;纷享销客新增长100人系列活动之制造业专场&#xff0c;我们有幸邀请维安电子、费斯托工具一起&#xff0c;共同探讨制造业渠道管理的新理念、新增长和新实践。 活动聚集了维安电子、费斯托工具、唐纳森、中科新松、斯可络、江浪科技、上海沪工等等20余位标杆制…

算法学习——LeetCode力扣动态规划篇9(1035. 不相交的线、53. 最大子数组和、392. 判断子序列、115. 不同的子序列)

算法学习——LeetCode力扣动态规划篇9 1035. 不相交的线 1035. 不相交的线 - 力扣&#xff08;LeetCode&#xff09; 描述 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在&#xff0c;可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线&#x…

针对 qt的sqlite加密数据库sqlitecipher插件QtCipherSqlitePlugin

&#x1f482; 个人主页:pp不会算法^ v ^ &#x1f91f; 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主 &#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 文章目录 简介编译安装使用可视化工具查看完结 简介 在客户端存储…

【docker】基础操作命令

docker run:干两步&#xff0c;本地找一下有没有集装箱&#xff0c;有运行&#xff0c;没有远程仓库下载运行。还没有报错。 docker好处&#xff1a; 不需要进行物理层模拟&#xff0c;不需要hypervisor利用的内核是宿主机的内核&#xff0c;不需要重新加载Linux内核 镜像相关…

QT-飞机水平仪图标

QT-飞机水平仪图标 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 #include <stdio.h> #include <stdlib.h> #include <string.h>#include <QtCore> #include <QtGui> #include <QDebug> #include <QTableWidget&g…