数组转换成树形结构 + 树形结构还原

将列表还原为树状结构 JavaScript:将列表还原为树状结构 阅读详情

生成树:

function listToTree($list, $pk = 'fid', $pid = 'pid', $child = 'children', $root = 0) {

$tree = array();

if (is_array($list)) {

    $refer = array();

    foreach ($list as $key => $data) {

        $refer[ $data[ $pk ] ] = &$list[ $key ];

    }

    foreach ($list as $key => $data) {

        // 判断是否存在parent

        $parentId = $data[ $pid ];

    if ($root == $parentId) {

         $tree[] = &$list[ $key ];

    } else {

         if (isset($refer[$parentId])) {

            $parent = &$refer[ $parentId ];

            $parent[ $child ][ $data[ $pk ] ] = &$list[ $key ];

            $parent[ $child ] = array_values($parent[ $child ]);

                }

            }

        }

    }

    return $tree;

}

树形结构解除:

function treetoarray($array){

    $arr = array();

    if(is_array($array) && !empty($array)){

        foreach($array as $w) {

            //有子集,继续分类

            if(isset($w['children']) && !empty($w['children'])) {

                $t = $w['children'];

                unset($w['children']);

                $arr[] = $w;

                if(is_array($t)){

                    $arr = array_merge($arr,tree2array($t));

                }

            } else {

                unset($w['children']);

                $arr[] = $w;

            }

        }

        return $arr;

    }else{

        return false;

    }

}

树形结构数据还原成普通list,根据父类id获得所有子孙后代id集合方法实现 说明 代码是自己项目中的部分代码,对于小白可能不太友好,容易看不太懂,代码其实不是很重要,重要的是设计思路,比如我们做的java三大排序算法的时候,和打印菱形、五角星图案时候,只要自己明白的了设计思路,代码写起来就容易多了。 下面代码实现的思路还是,通过不断循环自身的方法,知道下级没有数据或者为null时,结局遍历循环。 树形结构数据中,根据父类id获取子孙后代id集合和 树形结构数据还原成普通list集合方法 /** * *获得下级子类id集合 ... 阅读详情

相关推荐

CMake、Make、MinGw、Clang、Llvm、GCC、MSVC的区别

除开 GCC (GNU 编译器集合) 以外,MinGW 还包含有一些其他的 GNU 程序开发工具;的缩写,MinGw是windows版本的gcc集合。并不仅是一个 C/C++ 编译器,而是一套。是微软开发的VC运行时库,3、Make和CMake是。

m0_37698164的博客 1万+

前端将List列表转化为树型结构(reduce函数)

前端将List列表转化为树型结构(reduce函数)

qq_41580802的博客 2983

OTP语音芯片SOP8的前世今生_如九齐_硕呈_钰绅等以及国产方案KT148A

语音芯片ic的其中一个品类,就是SOP8封装的OTP语音芯片,非常的经典和常用。源头的供应商基本都是台系的原厂,比如:九齐、硕呈、佑华等等,其中佑华就算是鼻祖了,早期的4位机也是在语音市场得到了升华。 OTP(One Time Programmable)是单片机的一种存储器类型,意思是一次性可编程:程序烧入单片机后,将不可再次更改和清除。

qyvhome的博客 1873

普通对象数组转树形结构

【代码】普通对象数组转树形结构。

m0_55564216的博客 876

CH340以及CH系列USB转串口驱动下载

在之前使用USB转串口时,很多时候大家可能会不知道去哪下载驱动,然后百度随便下载一个,但往往鱼龙混杂且版本不一,所以今天特意整理一下CH340驱动以及CH系列的官方驱动下载地址,方便大家进行下载也方便自己后期查找,所有链接皆指向官方下载链接,每次下载都可获取官方当前最新驱动。 CH340/CH341 Windows驱动下载链接:CH341SER.EXE下载链接 Linux驱动下载链接:CH341SER_LINUX.ZIP下载链接 Andr...

OIDCAT的博客 4万+

VisualSFM+MeshLab 三维重建全过程记录

VisualSFM+MeshLab 三维重建全过程记录,从下载到运行出结果,以及其中一些可能出现的小问题。通过这两个软件熟悉一下多目立体视觉重建的流程。

何似莫相逢 3万+

php多级数组转list,list_to_tree将树型多维数组还原成列表

我们前面说过如何把返回的数据集转换成树型多维数组,下面我们来讲解一下如何将树型多维数组还原成列表/***将list_to_tree的树还原成列表*@paramarray$tree原来的树*@paramstring$child孩子节点的键*@paramstring$order排序显示的键,一般是主键升序排列*@paramarray$list过渡用的中...

weixin_31864641的博客 544

模拟IC版图DRC实战:手把手教你搞定MIM电容天线错误和ESD.10g违例

本文深入解析模拟IC版图中的MIM电容天线错误和ESD.10g违例问题,提供从错误解码到实战修复的完整指南。通过电路图修改、版图优化和验证闭环等步骤,帮助工程师高效解决DRC错误,特别适用于ADC等精密模拟电路设计。文章还分享了高级排错技巧和预防性设计策略,大幅提升流片成功率。

weixin_27697385的博客 295

前端小技巧: TS实现数组转树,树转数组

找到parentNode,加入其children。遍历数组,生成 tree node。

Wang的专栏 915

Qt for Android:基于libusb实现CH340x串口通信的高效开发方案

本文详细介绍了在Qt for Android环境下,基于libusb实现CH340x串口通信的高效开发方案。通过绕过Android高版本系统的权限限制,利用libusb+JNI技术实现稳定通信,适用于工业手持终端等场景。文章涵盖环境搭建、核心实现、常见问题解决方案及性能调优经验,帮助开发者快速掌握这一关键技术。

weixin_42715608的博客 427

(02)Cartographer源码无死角解析-(81) ROS栅格地图→服务接收子图、cairo图像绘详解、OccupancyGrid地图发布

疑问1疑问1src/cartographer/cartographer/mapping/2d/probability_grid.cc 文件中的 ProbabilityGrid::DrawToSubmapTexture 函数的 proto::SubmapQuery::Response::SubmapTexture* 示例对象 texture 中texture->mutable_slice_pose() 的含义具体是什么。

江南才尽江南山,年少无知年少狂! 1929

树形结构、数组的转化--js实现

js实现树形结构->数组的转化

galaxyfanqi的博客 397

196、NPU的编译器开发:教程与示例代码编写

NPU编译器开发实战指南 摘要:本文分享了NPU编译器开发中的核心挑战与实战经验,通过具体代码示例展示了关键实现技术: 指令生成:必须考虑硬件特性(如地址对齐)和芯片配置抽象化 图优化:重点处理常见冗余结构(Reshape合并、BN融合),并注意数值稳定性 算子拆分:采用分块计算策略适配有限SRAM,需特别注意边界条件处理 内存分配:基于张量使用频率的贪心算法优化SRAM使用效率 文中包含多个真实踩坑案例: DMA地址未对齐导致硬件错误 BN融合时的除零风险 tile边界处理不当引起的精度下降 这些经验为开

m0_50546716的博客 86

javaScript 递归生成树形tree结构and树形tree结构还原数组

【代码】javaScript 递归生成树形tree结构and树形tree结构还原数组。

tiger_Angle 571

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

《Leetcode》108. 将有序数组转换为二叉搜索树

将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5 1、题目分析 这个题需要一点数据结构的知识,首先什么是二叉搜索树,其次什么是二叉搜索树。只有明白这.

奥古斯都 302

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

森林转换成二叉树以及二叉树还原为森林代码

1 /* 2 森林转换成二叉树 3 思路:u的孩子节点为v1, v2, v3....(v1,v2,....互为兄弟节点) 4 那么将u的一个孩子节点(v1)连在u的左子树上,那么其他的孩子节点都连在v1的右子树上! 5 */ 6 #include<iostream> 7 #include&...

weixin_34138521的博客 275

JavaScript树结构和一维数组互转

js树形结构转换成一维数组和一维数组转换树结构

weixin_44903107的博客 459

奇葩需求,将json字符串转换映射到某种父子结构id,pid的树形结构数组存入数据库

将json转换为每个节点用 code、pcode标识的一个树形结构的数组数据,方便存入数据库操作节点的值,同时本文也提供了将该树形结构的数组数据重新还原成json字符串

monkeyhi的博客 742

树结构使用实例---实现数组和树结构的转换

树是一种非散列数据结构,和非散列表一样,它对于存储需要快速查找的数据非常有用。 树是一种分层数据的抽象模型。现实生活中最常见的树的例子是家谱,或是公司的组织架构 本文将讲述一个实例,构造一棵树来实现数组和tree的相互转换,这在前端树结构中是经常遇到的。 需求场景: 将数组转化树结构,并将树结构转化为数组 数组 const list= [ { id: 1001, parentId: 0, name: 'AA' }, { id: 1002, parentId: 1001, ...

前端361 3729

PHP将数据集转换成树状结构

/** * 把返回的数据集转换成Tree * @param array $list 要转换的数据集 * @param string $pid parent标记字段 * @param string $level level标记字段 * @return array */ function list_to_tree($list, $pk='id', $pid = 'pid'...

weixin_34085658的博客 295

读入dir.txt,把dir.txt中的文本转换成一棵树

最近几天突然拿到这样的一道题: 读入dir.txt,把dir.txt中的文本转换成一棵树 dir.txt中文本格式类型如下(节点重名不用理会) a.c.d.z a.c.c b.a a.b.c.d 转换成如下格式的文本: root |---a     |---b         |---c             |---d     |---c         |--

u010245383的专栏 1342

tree结构拆为一维数组 一维转多维 tree结构

buildTreeList(data, id, parentId) { this.treeDataIdObj = ""; let treeData = []; let tmpMap = {}; for (let i = 0, l = data.length; i < l; i++) { // 以每条数据的id作为obj的...

weixin_41881346的博客 562

Tree

对查询结果集进行排序 /** * 对查询结果集进行排序 * @access public * @param array $list 查询结果 * @param string $field 排序的字段名 * @param array $sortby 排序类型 * asc正向排序 desc逆向...

qmister 153

树和森林(包括哈夫曼树)的概念及算法实现

(3)孩子兄弟表示法(二叉树表示法、二叉链表表示法):用二叉链表作树的存储结构,链表中每个结点的两个指针域分别指向第一个孩子结点和下一个兄弟结点。在哈夫曼树的每个分支上标0或1:结点左分支标0,右分支标1,把从根到每个叶子接的路径上的标号连接起来,作为该叶子代表的字符的编码。沿分支找到的所有右孩子,都与p的双亲用线连起来。树的路径长度:从树根到每个结点的路径长度之和(结点数目相同的二叉树中,完全二叉树是路径长度最短的二叉树)结点的带权路径长度:从根结点到该结点之间的路径长度与该结点的权的乘积。

WinKoko的博客 1210
上一篇: 互联网医院三级等保测评接口示例(PHP版本:密钥生成+密钥过期刷新+接口请求+兜底处理)
下一篇: 基于阿里云 大文件分片上传(oss + layui + js版本):
masterphp
博客等级 码龄5年 247粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值