php递归数据转二维数组

2023-11-07

1.核心代码

//把递归的数组转二维数组
 function arrDepth($data, $children)
{
    // 获取key列表
    $keyLists = array_keys($data);
    // 获取数组长度
    $count = count($keyLists);
    foreach ($data as $key => $value) {
        if (!is_array($value)) {
            return $data;
        }
        if (key_exists($children, $value)) {
            // 查找当前key在key列表中的key
            $index = array_search($key, $keyLists);
            $index++;
            // 插入子数组
            // 判断插入位置是否存在
            if ($index >= $count) {
                // 如果不存在
                $data = array_merge($data, $value[$children]);
            } else {
                // 如果存在
                $doing = array_splice($data, $keyLists[$index], 0, $value[$children]);
            }
            // 删除之前的子数组
            unset($data[$key][$children]);
            // 重新调用该方法
            $data = arrDepth($data, $children);
            // 返回操作结果
            // 如果不重新循环会出现key值错误的问题
            return $data;
        }
    }
    return $data;
}

2.调用

//把递归的数组转二维数组
$branches2 = arrDepth($branches, 'children');

3.说明

children是保存下级的数组

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php递归数据转二维数组 的相关文章

  • 适用于真正复杂查询的 ORM 解决方案

    在这样复杂的情况下 人们可以 应该使用任何 ORM 解决方案吗 这可以用以下方法完成吗Propel or Doctrine 目前我正在使用 Propel 所以如果有 Propel 解决方案 我会很高兴 如果我使用 propel 进行直接查询
  • REST API 响应中的校验和

    发送带有响应内容的校验和是个好主意吗 如果是这样 计算校验和的最常见方法是什么 Example HTTP 1 1 200 OK Date Thu 30 Jun 2011 21 32 20 GMT Server Apache Connecti
  • 正则表达式删除带有数字的单词

    我想删除产品名称中带有数字 参考 或小单词 2 个或更少字符 的单词 但我找不到好的正则表达式 一些例子 链式防回弹ECS 2035 应成为 链式防反弹 指南 35 厘米俄勒冈 Intenz 应该成为 俄勒冈州 Intenz 指南 Tron
  • SimpleXML:使用包含命名空间的 XML

    我正在尝试从 google picasa API 获取地理信息 这是原始 XML
  • 使用 Composer CLI 将数据添加到额外属性

    根据文档extra的财产composer json 架构 https getcomposer org doc 04 schema md extra 允许设置 供脚本使用的任意额外数据 出于脚本目的 如果可以将数据添加到extra通过命令行属
  • 如何通过单击按钮调用 PHP 函数

    我创建了一个名为的页面functioncalling php包含两个按钮 Submit and Insert 我想测试单击按钮时执行哪个函数 我希望输出出现在同一页面上 因此 我创建了两个函数 每个按钮一个
  • 帮助我将以十六进制表示的长值转换回日期/时间

    我有一个日期值 据说它是 8 个字节 一个 long 又名 int64 值 并转换为十六进制 60f347d15798c901 我如何使用 PHP 将这个和类似的值转换为时间 日期 将其转换为十进制给我 96 243 71 209 87 1
  • 从数据库结果生成多维数组的递归函数

    我正在编写一个函数 它接受页面 类别数组 来自平面数据库结果 并根据父 ID 生成嵌套页面 类别项目数组 我想递归地执行此操作 以便可以完成任何级别的嵌套 例如 我在一个查询中获取所有页面 这就是数据库表的样子 id parent id t
  • 致命错误:找不到类“App\PDO”

    当我尝试使用命名空间时出现此错误 I have namespace App 顶部 班级看起来像 class database function construct try this gt db new PDO lt here the err
  • CodeIgniter 2.1.0 的会话库中是否存在任何已知错误?为什么我会被踢出去? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在开发
  • 如何为 eclipse PHP 调试设置正确的 URL

    我在使用非标准 URL 在 Eclipse 中设置 PHP 调试时遇到问题 我的应用程序的 URL 必须是http xxx index php http xxx index php 这是我无法轻易改变的 我在设置调试配置来调用此 URL 时
  • 编写 PHP SQL 更新语句的最佳方法

    我有这个 PHP SQL 语句 updateCategory UPDATE category SET name name description description parent parent active active WHERE i
  • 添加验证码到 Symfony2 登录

    我需要将验证码添加到我的登录页面 我正在使用 GregwarCaptchaBundle 和 FosUserBundle 目前我已经使用以下代码在登录时显示验证码
  • after_or_equal 验证在 laravel 5.2 中不起作用

    我想比较 start date 和 end date 并且 end date 应等于或大于 start date 我正在使用 after or equal 验证 return Validator make data start date g
  • 查找关联数组中最小值的键

    在 PHP 中 假设您有一个如下所示的关联数组 pets array cats gt 1 dogs gt 2 fish gt 3 我如何找到具有最低值的密钥 在这里 我要寻找cats 是否有一些我错过的内置 PHP 函数可以实现此目的 如果
  • 在 CentOS 6.5 上升级 PHP(最终版)

    我正在尝试更新我的 PHP 当前 v 5 3 3 到最新的稳定 PHP 版本 但它没有正常运行 并且显示没有任何内容可以更新 任何帮助都会有用的 不断地说 没有标记为更新的软件包 正如 Jacob 提到的 CentOS 软件包存储库目前似乎
  • 子目录中的 CakePHP 控制器和模型

    你好 我想知道如何将我的组件和模型放在子目录中 假设我有一个 Web 应用程序 它有 3 个不同的区域 管理员 用户 开发人员 每个区域执行不同的操作并具有完全不同的界面 所以我希望管理员去http www site com admin h
  • 如何使用 JQuery 提取嵌套 HTML 中的文本?

    我这里有 HTML 代码 div class actResult style border solid table tbody tr td Order Number td td 1 td tr tr td Customer Number t
  • 如何使用 php 通过 https 下载文件

    我需要使用 PHP 下载 xml 文件 我可以在对文件进行curl 调用时通过设置以下选项来读取文件的内容 curl setopt http CURLOPT SSL VERIFYPEER false curl setopt http CUR
  • 如何获取与 PHP 中的日期数组相比最接近的日期

    这个帖子 https stackoverflow com questions 11012891 how to get most recent date from an array of dates几乎为我回答了这个问题 但我有一个特定的需求

随机推荐

  • 流畅交互体验:实现Vue中el-dialog拖动效果的完美指南

    在使用elementUI中的Dialog组件时 总有无理的产品提需求 在右上角增加可点击全屏的功能 给我实现弹出框可任意拖拽的功能 这种情况下 组件就不能很好的使用了 那么 只能由我们前端攻城狮进行代码攻克了 接下来就实现其中的可拖拽功能
  • UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 2: illegal multibyte sequence

    最近在搞人工智能的东东 玩了玩词云的东西 在编写代码时 出现了一个问题 目的 统计西游记里出现的词的内容 读取西游记整本小说的内容 然后进行统计分析 代码如下 text open 西游记 txt read 但是在执行的时候一直报错 Unic
  • 方舟生存进化秘籍大全

    代码大全 addexperience 10000 0 0 1 给角色加1W经验 可以修改数值 修改人物每升级一次 各种属性的增长倍率 修改文件 common ARK ShooterGame Saved Config WindowsNoEdi
  • adb刷入第三方recovery_【玩机必会技能】小米手机通用刷TWRP RECOVERY

    点击上方 蓝字 关注我们 想让自己的手机获取更多的功能和体验不同的安卓系统 掌握下面这些是必不可少的 此教程也适用于其他品牌的安卓手机 步骤都是一样的 刷入TWRP RECOVERY 这是手机刷入ROOT和第三方ROM的必备工具 而解Boo
  • hualinux2.21 环境搭建:Centos8安装 LVS+keepalived高可用负载均衡

    在前面讲了 hualinux2 19 环境搭建 Centos8 nginx负载均衡 反代 和 hualinux2 20 环境搭建 centos8源安装haproxy 两个常用的负载均衡 基本上都是推荐做七层负载 虽然也有四层负载的能力 现在
  • ViewPager2一页展示多个Item且两边滑动

    ViewPager2一页展示多个Item且两边滑动 研究背景 在项目中有一个滚轮选择器的需求 对于小组件的研发 我一直倾向于自研 一方面功能不复杂 另一方面也锻炼自己的思维能力 不只是局限于上次研发 传统Viewpager解决方法 对于传统
  • C#类型推测

    代码 using System using System Collections Generic using System Linq using System Text using System Threading Tasks namesp
  • IT项目管理 — 作业8

    题目 二选一 教材练习题作业1 3 教材操作案例 Running Case 作业1 3 解答 选择教材练习题作业1 3 练习题1 假设你的组织想聘用新教师来教授项目管理课程 制定一个质量标准的清单 可用于做出此次聘用决定 质量标准清单 教师
  • 判断数组或对象里是否有值

    function checkArray arr for let i 0 i lt arr length i const obj arr i for const key in obj if Object prototype hasOwnPro
  • Windows微信可以上网但是浏览器却用不了网络如何解决

    1 清除DNS缓存 这个主要用于某些网站打不开的情形 首先同时按WINDOWS R键 在弹出窗口输入CMD 然后回车 在弹出的命令提示符中输入ipconfig flushdns 然后回车 2 重置winsock目录 在命令提示符中输入net
  • Git配置用户名和邮箱

    设备 Windows10 git MINGW64 一般刚安装Git都要配置用户名和邮箱 因为你提交代码到本地仓库 上传代码到远程仓库 时会用到 如果没有没有配置 在你提交时它会提醒你的 那么接下来我们讲一下怎么配置 目录 1 查看git的配
  • 基于Python的情感分析案例——知网情感词典

    1 情感分析含义 情感分析指的是对新闻报道 商品评论 电影影评等文本信息进行观点提取 主题分析 情感挖掘 情感分析常用于对某一篇新闻报道积极消极分析 淘宝商品评论情感打分 股评情感分析 电影评论情感挖掘 情感分析的内容包括 情感的持有者分析
  • Linux:apache配置与应用

    Linux apache配置与应用 一 虚拟 Web 主机 1 1 虚拟Web主机 1 2 httpd服务支持的虚拟主机类型 二 基于域名的虚拟主机 2 1 为虚拟主机提供域名解析 2 2 为虚拟主机准备网页文档 2 3 添加虚拟主机配置
  • ezpolt和plot区别_《qqplot2: 数据分析与图形艺术》第4章学习笔记

    第4章 用图层构建图像 每个图层孝可以有自己的数据集和图形属性映射 附加的数据元素可以通过图层添加到图形中 4 2 创建绘图对象 ggplot 函数 有两个主要参数 数据和图形属性映射 这两个参数被设定为绘图的默认参数 只有在新添加的图层里
  • 南桥和北桥-主板芯片组发展史

    转自https baijiahao baidu com s id 1636848759349227507 wfr spider for pc 芯片组无疑是主板重要的组成部分 在我们今天能够看到的主板上芯片组只不过是一个散热片底下的小芯片而已
  • web前后台数据交互的四种方式(转)

    1 利用cookie对象 Cookie是服务器保存在客户端中的一小段数据信息 使用Cookie有一个前提 就是客户端浏览器允许使用Cookie并对此做出相应的设置 一般不赞成使用Cookie 1 后台代码 1 利用cookie对象 Cook
  • 解决 Processing of multipart/form-data request failed. /upload/A.tmp (No such file or directory) 问题

    使用spring boot 上传 刚开始一切正常 但过了一段时间上传文件的时候出现错误 ERROR org apache catalina core ContainerBase Tomcat localhost dispatcherServ
  • 日语(五十元音)_01

    一五十元音图 a i u e o ka ki ku ke ko sa si su se so ta ti tu te to na 二ni nu ne ha ma ya la wa nn 转载于 https www cnblogs com h
  • AD常用快捷键记录

    一 通用快捷键 1 放大缩小 常用方法 ctrl 鼠标滚轮 鼠标中键 移动鼠标 pgup pgup 2 切换不同的布线层 ctrl shift 鼠标滚轮 3 在SCH或者PCB 同一平面内左右翻转 ctrl X 4 在SCH或者PCB 同一
  • php递归数据转二维数组

    1 核心代码 把递归的数组转二维数组 function arrDepth data children 获取key列表 keyLists array keys data 获取数组长度 count count keyLists foreach