PHP 分层数组 - 父级和子级

2023-12-12

我使用 PHP 和 mySQLIdiorm。这可能不相关。

我的 PHP 数组

  • 这是父母和孩子之间的关系。
  • 0 是根父级。
  • 示例:根父级 0 有子级 33,其子级 27 有 孩子 71.

如果需要解决问题,可以更改此数组结构。

array (
  33 => 
    array (
      0 => '27',
      1 => '41',
  ),
  27 => 
    array (
      0 => '64',
      1 => '71',
  ),
  0 => 
    array (
      0 => '28',
      1 => '29',
      2 => '33',
  ),
)

我的分层结果

像这样的东西,但是作为一个数组......

  0 => 
      28
      29
      33
         27 =>
               64
               71
         41

信息

  • 深度是未知的,并且可以是无限的。我尝试过 foreach,但可能不是这样。

我自己的想法

  • 一些递归函数?
  • 一些 while 循环?

我尝试了以上两种方法,但结果一团糟。这是一个令人费解的事情。


@deceze 的建议奏效了。然而输入数组需要稍微改变一下,就像这样......

$rows = array(
    array(
        'id' => 33,
        'parent_id' => 0,
    ),
    array(
        'id' => 34,
        'parent_id' => 0,
    ),
    array(
        'id' => 27,
        'parent_id' => 33,
    ),
    array(
        'id' => 17,
        'parent_id' => 27,
    ),
);

From https://stackoverflow.com/a/8587437/476:

function buildTree(array $elements, $parentId = 0) {
    $branch = array();

    foreach ($elements as $element) {
        if ($element['parent_id'] == $parentId) {
            $children = buildTree($elements, $element['id']);
            if ($children) {
                $element['children'] = $children;
            }
            $branch[] = $element;
        }
    }

    return $branch;
}

$tree = buildTree($rows);

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

PHP 分层数组 - 父级和子级 的相关文章

  • RestSharp反序列化JSON内容(代表一个对象包含字节数组)错误

    Client端收到正式的JSON内容 Id 1 2 3 Size 56 但在反序列化字节数组时出现错误 1 下面的语句出现错误 IRestResponse
  • 如何在 Laravel 5.5 中编辑“页面因不活动而已过期”的视图

    在 Laravel 5 5 中 当您使用 CSRF 保护 默认情况下 并且在长时间不活动后发送发布请求时 您将收到此错误页面 屏幕截图 我对此错误表示同意 但是 我需要更改此错误的视图 文本以确保与我的应用程序风格和语言相匹配 关于如何编辑
  • 如何从 Laravel 5 中的 Public/Images 文件夹中删除图像(URL 数据)

    如何从 laravel 5 中的 public images 文件夹中删除图像文件 我从这个网站找到了一些例子 但我知道他们只是在他们的文件中使用文件名record table 但我正在使用类似的东西URL e g localhost pr
  • Symfony php.ini Debian

    我在 Oracle VM VirtualBox 上使用 Debian 7 amd64 LAMP 服务器 我正在尝试安装 Symfony 但遇到了一些小问题 当我运行命令时 php my project name app check php
  • 将 numpy 数组转换为 numpy 数组的数组

    如何转换 numpy 数组a到 numpy 数组b以 num Pythonic的方式 理想情况下 解决方案应该适用于任意维度和数组长度 import numpy as np a np arange 12 reshape 2 3 2 b np
  • Firebase 中的递归错误太多

    我的全局作用域中有一个函数 用于侦听 FB 引用上的值 function updateCredits userID var userRef database ref users userID userRef on value functio
  • Laravel 5 与 SAML 2 和现有 IDP 集成

    我使用 Laravel 5 我正在尝试将 SAML 2 0 与其集成 我找到了这个包 https github com aacotroneo laravel saml2 https github com aacotroneo laravel
  • C++ 指针数组

    Code include stdafx h include
  • 使用 php 将 HLS Segment (ts) 视频转换并加入到 mp4

    你好我正在使用这个工具 https github com Ejz HLSDownloader https github com Ejz HLSDownloader将 HLS 视频片段从 m3u8 播放列表下载到 ts 文件中 不 我不知道如
  • 从提交的表单中转义字符串中的字符

    每次发布帖子时 我都会得到转义字符 gt gt gt 我有一个多步骤表单 它将数据从一种表单传输到另一种表单 我将这些值与准备好的语句一起保存在数据库中 数据库中的值当前看起来像Paul s House 用户应该可以在字符串中使用单引号和双
  • Propel Query 中的动态表名称

    我想知道您是否可以使 propel 查询的表名称动态化 有点像变量 一个例子类似于 DynamicVar Query create 我让它在 ifs 中工作 就像下面的例子一样 但如果更动态地制作 可以删除相当多的行 这些表的设置都是相同的
  • Matlab中反转一位逻辑位

    是否存在更好的方法来反转 X 的元素 gt gt X dec2bin 10 X 1010 我这样做了 x i num2str 1 str2num x i 如果我理解正确的话 你想将一位设置为 1 使用bitset bitset x bitN
  • 将多个数组合并为一个数组

    如何将多个数组合并为一个二维数组 鉴于我有以下输入 var arr1 1 2 3 var arr2 a b c var arr3 aa bb cc 我需要这样的输出 1 a aa 2 b bb 1 c cc 我认为你想要的是将三个数组组合成
  • 使用 DOM 获取 div 的内容(包括子标签)

    我正在使用 DOM 来获取 div 标签的内容 但内部 html 部分未显示 功能是 dom new DOMDocument libxml use internal errors true dom gt loadHTMLFile url l
  • 将秒转换为天、小时、分钟和秒

    我想转换一个变量 uptime这是秒 分为天 小时 分钟和秒 Example uptime 1640467 结果应该是 18 days 23 hours 41 minutes 这可以通过以下方式实现DateTime http php net
  • 在 MySQL 中搜索多个单词

    我使用 HTML 表单来允许用户查找数据库表中的条目
  • 需要使用 php 从远程服务器下载与 $_FILES 相同的内容[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 好的 我有处理图像上传的 php 代
  • 使 div 的大小与其内部图像的大小相同

    我有一个带有以下代码的div HTML div img src img logo png div CSS div imgContainer width 250px height 250px padding 13px 问题是用户可以编辑图像大
  • WordPress 事件按元生效日期排序

    我在获取参数数组以按 Wordpress 中的日期对事件列表进行排序时遇到一些问题 我在 Stack Overflow 和其他地方找到了几个建议的解决方案 但经过大量的试验和错误后 这些解决方案似乎都不起作用 这没什么花哨的 而且应该比这容
  • Laravel 5 注销特定用户

    在我的 laravel 5 应用程序中 有一个功能允许具有管理员角色的用户重置非管理员的任何人的密码 但这不会强制该人注销并再次登录 更改密码后如何强制用户注销 我没有对用于验证用户身份或任何内容的中间件进行任何更改 我不知道它是否有效 但

随机推荐

  • 在Android Studio中创建多个项目

    我想做的事 在android studio中创建三个android项目1 公共项目或库项目 这是一个独立的项目 2 使用库项目的Project13 使用库项目的Project2 问题是什么 在 eclipse 中很容易实现 但在 andro
  • 为什么数组在javascript中不按递增日期或递减日期排序?

    我正在尝试对我的对象数组进行排序 对象具有日期属性 我需要按升序或降序日期对我的数组进行排序 我尝试这样 https jsfiddle net rxaLutgn 1 function sort by field reverse primer
  • Java 9 子包跨模块拆分

    在 Java 9 中 我可以跨模块拆分子包吗 例如 我可以有com example foo在一个模块中并且com example foo bar在另一个模块中 这似乎是一个简单的问题 但由于某种原因 我在搜索后无法找到直接答案 如有权威参考
  • 有哪些工具和语言可用于 Windows shell 脚本编写?

    我想知道在 Windows 平台上执行一些脚本工作的选项有哪些 我需要文件操作 注册表编辑等功能 可以使用脚本工具编辑文件吗 Windows 脚本工具还提供哪些其他功能 使用 Windows GUI 可以完成的所有操作都可以使用脚本语言完成
  • 使用 ScheduleJobs 调用计划

    我一直在试图弄清楚如何在 Quartz Net 中调用 ScheduleJobs 方法 但努力创建它所期望的正确参数 这是我尝试过的 IJobDetail jobDetail JobBuilder Create
  • UILabel 中的文本可以分配有 colorWithPatternImage: 吗?

    如果是这样 图像可以动画化吗 有充分的理由不这样做吗 内存使用情况等 是的 标签可以有图案颜色 替代文本 http img178 imageshack us img178 1995 textwithpatterncolor png make
  • 没有名为tensorflow.python.platform的模块

    我在跑步tensorflow g3doc tutorials mnist fully connected feed py I get hiro106 hiro106 virtual machine python tensorflow ten
  • 无法通过 Watir 连接到 Tor-Firefox

    我在通过 Ruby Watir webdriver 连接到 Tor 时遇到问题 我使用 Tor 浏览器捆绑包 问题是 当我尝试通过 Watir Selenium 连接时 我似乎无法打开 Tor 而不是常规的 Firefox 看着类似的问题
  • 两个 Android 应用和一个 Firebase 数据库

    我需要为两个 Android 应用程序使用一个 Firebase 数据库 一个应用程序将具有对数据库的写访问权限 另一个应用程序将具有对数据库的读访问权限 这两个应用程序必须分开 我无法合并它们 我可以为两个应用使用一个 Firebase
  • 如何检测 UI 和游戏对象上的点击/触摸事件

    如何在android中检测Canvas on Touch上的UI对象 例如 我有一个画布 其中有 5 个对象 例如Image RawImage Buttons InputField等等 当我触摸 Button UI 对象时然后执行某些操作
  • 根据对象属性值在 Cloudant (CouchDB) 中创建视图

    我一直在尝试找到满足此要求的解决方案 但遇到了很多死胡同 我在用着Cloudant作为我的用户文档的数据存储 每个用户文档都有一个名为 items 的字段 属性 它是一个对象数组 所以用户文档看起来像这样 id userid1 rev XX
  • 在 Swift 中创建 PDF

    我正在关注苹果的文档在 Swift 中使用 Xcode6 Beta6 创建 PDF 文件 var currentText CFAttributedStringRef CFAttributedStringCreate nil textView
  • 如何一次性将 df 列值映射到十六进制颜色?

    我有一个包含两列的 pandas 数据框 其中一列值需要映射到十六进制颜色 另一个绘图过程从那里接管 这是我到目前为止所尝试过的 部分玩具代码取自here import pandas as pd import matplotlib impo
  • 如何在R中使用fportfolio包进行非时间序列输入?

    对于 fportfolio 包 您需要将回报的时间序列作为输入 并在内部计算预期回报和时间序列的方差 然后在诸如 portfoliofrontier 或 tangencyportfolio 等函数中使用 但就我而言 我已经有了预期收益矩阵和
  • 打开键盘时无法滚动到结果末尾 (Windows Phone)

    我正在开发 Windows Phone 应用程序 但遇到了这个问题 我有一个显示搜索结果的列表控件 但是当打开键盘时 由于键盘原因 某些结果不可见 有没有办法将控件缩小到键盘边框 为了看到所有的结果 即使键盘打开 我也想滚动直到结果末尾 有
  • Java正则表达式:重复组?

    如何在 Java Regex 中定义重复组 假设一个 2 位数字 0 9 2 多次由 分隔 12 34 98 11 这是可能的还是唯一的机会 编辑 我喜欢验证和提取 在Java中你也可以使用Scanner用于此目的的 API final P
  • 持续交付的原则

    如上所述here 以下是持续交付的原则 Every build is a potential release Eliminate manual bottlenecks Automate wherever possible Have auto
  • 创建高级过滤器

    我正在尝试从 C 在 Excel 中创建高级过滤器 以将唯一数据从一张工作表复制到另一张工作表 至少我在 Excel 中得到它 并且如果我使用这样的互操作 Excel Range rang sheet2 get Range A2 Excel
  • 代码点火器 + HMVC + REST

    我正在开发基于 Codeigniter HMVC 的应用程序 我正在尝试添加一个新模块 我用菲尔 斯特金的REST 控制器 2 6 0 and Format用于将 REST API 创建为模块的库 当我尝试获取例如http api exam
  • PHP 分层数组 - 父级和子级

    我使用 PHP 和 mySQLIdiorm 这可能不相关 我的 PHP 数组 这是父母和孩子之间的关系 0 是根父级 示例 根父级 0 有子级 33 其子级 27 有 孩子 71 如果需要解决问题 可以更改此数组结构 array 33 gt