PHP三级分类数据处理

一、原始数据

function getDatas(){return [['component' => 'system','redict' => '/system','path' => '/system','hidden' => 1,'name' => '系统管理','children' => [['component' => 'user','redict' => '/user','path' => '/user','hidden' => 1,'name' => '用户管理','children' => [['component' => 'user_list','redict' => '/user_list','path' => '/user_list','hidden' => 1,'name' => '用户列表',],['component' => 'role','redict' => '/user_role','path' => '/user_role','hidden' => 1,'name' => '角色列表',],['component' => 'perm','redict' => '/perm','path' => '/perm','hidden' => 1,'name' => '权限列表',],]],['component' => 'data','redict' => '/data','path' => '/data','hidden' => 1,'name' => '数据管理','children' => [['component' => 'report','redict' => '/report','path' => '/report','hidden' => 1,'name' => '分日报表',],['component' => 'hour_report','redict' => '/hour_report','path' => '/hour_report','hidden' => 1,'name' => '分时报表',],['component' => 'month_report','redict' => '/month_report','path' => '/month_report','hidden' => 1,'name' => '分月报表',],]],['component' => 'resource','redict' => '/resource','path' => '/resource','hidden' => 1,'name' => '资源管理','children' => [['component' => 'res_list','redict' => '/res_list','path' => '/res_list','hidden' => 1,'name' => '资源列表']]]]]
]
}

二、函数处理

function deal(){$datas = getDatas();$level_1_tree = [];foreach($datas as $data_level_1){$data_level_1_arr['component'] = $data_level_1['component'];$data_level_1_arr['redict'] = $data_level_1['redict'];$data_level_1_arr['path'] = $data_level_1['path'];$data_level_1_arr['meta'] = ['title' => $data_level_1['name'],'hidden' => $data_level_1['hidden']];$level_2_tree = [];if(isset($data_level_1['children']) && !empty($data_level_1['children'])) {foreach ($data_level_1['children'] as $data_level_2) {$data_level_2_arr['component'] = $data_level_2['component'];$data_level_2_arr['redict'] = $data_level_2['redict'];$data_level_2_arr['path'] = $data_level_2['path'];$data_level_2_arr['meta'] = ['title' => $data_level_2['name'],'hidden' => $data_level_2['hidden']];$level_3_tree = [];if (isset($data_level_2['children']) && !empty($data_level_2['children'])) {foreach ($data_level_2['children'] as $data_level_3) {$data_level_3_arr['component'] = $data_level_3['component'];$data_level_3_arr['redict'] = $data_level_3['redict'];$data_level_3_arr['path'] = $data_level_3['path'];$data_level_3_arr['meta'] = ['title' => $data_level_3['name'],'hidden' => $data_level_3['hidden']];array_push($level_3_tree, $data_level_3_arr);unset($data_level_3_arr);}$data_level_2_arr['children'] = $level_3_tree;}array_push($level_2_tree, $data_level_2_arr);unset($data_level_2_arr);}$data_level_1_arr['children'] = $level_2_tree;}array_push($level_1_tree, $data_level_1_arr);unset($data_level_1_arr);}print_r($level_1_tree);}deal();

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

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

相关文章

倒计时63天

e/f/j e:,,,一道e题卡我2个多h,幸好之后去写i题了,不然就完了╥﹏╥... E-Tokitsukaze and Eliminate (easy)_2024牛客寒假算法基础集训营2 (nowcoder.com) 我的思路:倒过来看不同个数再考虑一下1212这样…

UML---用例图,类图

用例图 用例图(Use Case Diagram)主要描述系统的功能需求和参与者与系统之间的交互。它是用户与系统交互的最简表示形式,展现了用户和与他相关的用例之间的关系。用例图被视为系统的蓝图,通过它,人们可以获知系统不同种…

mysql:事务的特性ACID、并发事务(脏读、不可重复读、幻读、如何解决、隔离级别)、undo log和redo log的区别、相关面试题和答案

事务是一组操作的集合,它会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 事务的特性(ACID) 原子性(Atomicity):事务是不可分割的…

Flink-1.18.1环境搭建

下载 下载flink安装包 Index of /dist/flink/flink-1.18.1 下载flink-cdc安装包 Release Release 3.0.0 ververica/flink-cdc-connectors GitHub 安装 添加环境变量 vi ~/.bash_profile export FLINK_HOME=/home/postgres/flink/flink-1.18.1 export PATH=$PATH:$FL…

idea开发工具的简单使用与常见问题

1、配置git 选择左上角目录file->setting 打开,Version Control 目录下Git,选择git安装目录下的git.exe文件; 点击test,出现git版本,则表示git识别成功,点击右下角确认即可生效。 2、配置node.js 选…

ubuntu开机报错/dev/nume0n1p2:clean

本来是开机卡在这个界面,经过以下操作,变成这种了 现在的问题变成linux卡在 failed to start NVIDIA Persistence Daemon 按照下面的操作方法,可以有开机界面了。但是输入密码后,一直在登录界面 1.方式一:重新安装显…

Prometheus主机相关指标表达式整理

问题描述 需要通过Prometheus采集监控的主机节点的cpu使用率、内存使用率、磁盘使用率等指标数据,并根据topk排序筛选出前topN的主机。对过程进行一下记录。 表达式 //磁盘读速率top10private final static String TOP10_DISK_READ "topk(10,sum(irate(node…

.gitlab-ci.yml文件参数

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

TypeScript 学习笔记(Day4)

「写在前面」 本文为 b 站黑马程序员 TypeScript 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. TypeScript 学习笔记(Day1) 2. TypeScript 学习笔…

【计算机网络】Socket的SO_TIMEOUT与连接超时时间

SO_TIMEOUT选项是Socket的一个选项,用于设置读取数据的超时时间。它指定了在读取数据时等待的最长时间,如果在指定的时间内没有数据可读取,将抛出SocketTimeoutException异常。 SO_TIMEOUT的设置 默认情况下,SO_TIMEOUT选项的值…

SystemVerilog约束随机(二)

文章目录 前言一、SystemVerilog约束随机1.1 集合操作set membership1.2 权重约束weighted constraints1.3 队列约束array constranint1.4 条件约束order constraints1.5 等价约束equivalence constraints1.6 顺序约束solver order 总结 前言 这里主要记录一下systemverilog中…

【Rust】——rust前言与安装rust

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

ACM训练题:Division

题意是给你N&#xff0c;打印出所有相除等于N的五位数&#xff08;包含前导零&#xff09;&#xff0c;可以枚举后五位&#xff0c;计算量是10&#xff01;/5&#xff01;&#xff0c;然后乘N&#xff0c;一起检验10个数是否都出现。 AC代码&#xff1a; #include <iostre…

蓝桥杯省赛无忧 课件111 带权并查集

01 什么是带权并查集&#xff1f; 02 算法原理 03 经典例题分析

Flutter和Dart中Future是一个非常重要的概念

在Flutter和Dart中&#xff0c;Future是一个非常重要的概念&#xff0c;用于表示一个异步操作的最终结果。Dart是一门单线程的语言&#xff0c;但为了执行耗时的操作&#xff08;如网络请求、文件I/O等&#xff09;而不阻塞主线程&#xff0c;Dart引入了异步编程模型。 Future…

uniapp踩坑之项目:简易版不同角色显示不一样的tabbar和页面

1. pages下创建三个不同用户身份的“我的”页面。 显示第几个tabbar&#xff0c;0是管理员 1是财务 2是司机 2. 在uni_modules文件夹创建底部导航cc-myTabbar文件夹&#xff0c;在cc-myTabbar文件夹创建components文件夹&#xff0c;在components文件夹创建cc-myTabbar.vue组件…

五、MyBatis 高级扩展

本章概要 Mapper 批量映射优化插件和分页插件 PageHelper 插件机制和 PageHelper 插件介绍PageHelper 插件使用 逆向工程和 MybatisX 插件 ORM 思维介绍逆向工程逆向工程插件 MyBatisX 使用 5.1 Mapper 批量映射优化 需求 Mapper 配置文件很多时&#xff0c;在全局配置文件…

Spark Shuffle Service简介与测试

一 Dynamic Resource Allocation(动态资源分配) 了解Shuffle Service之前&#xff0c;我们需要先了解和Shuffle Service有关的另一个特性&#xff1a;动态资源分配。 Spark管理资源有两种方式&#xff1a;静态资源分配和动态资源分配。 静态资源分配&#xff1a;spark提交任…

strtok的使用

Strtok&#xff1a;原型char *strtok(char s[], const char *delim); s为要分解的字符&#xff0c;delim为分隔符字符&#xff08;如果传入字符串&#xff0c;则传入的字符串中每个字符均为分割符&#xff09;。首次调用时&#xff0c;s指向要分解的字符串&#xff0c;之后再次…