对父级之后的每个子级进行排序

2023-12-10

我有一个这样的数组:

<?php
array(
    array(
        'id' => 1,
        'parent_id' => null
    ),
    array(
        'id' => 2,
        'parent_id' => 1
    ),
    array(
        'id' => 3,
        'parent_id' => null
    ),
    array(
        'id' => 4,
        'parent_id' => 2
    )
)

我需要将其排序到每个孩子的直接父母之后。因此,ID 4 项应该紧接在 ID 2 之后。

Thanks.


该工作解决方案适用于array_multisort().

尝试使用:

$data = array(
    array(
        'id' => 1,
        'parent_id' => null
    ),
    array(
        'id' => 2,
        'parent_id' => 1
    ),
    array(
        'id' => 3,
        'parent_id' => null
    ),
    array(
        'id' => 4,
        'parent_id' => 2
    )
);

$parent_ids = array();
foreach ($data as $item) {
    $parent_ids[]  = $item['parent_id'];
}

array_multisort($parent_ids, SORT_ASC, $data);

如果你想null最后的值替换它foreach with:

foreach ($data as $item) {
    if (is_null($item['parent_id'])) {
        $item['parent_id'] = PHP_INT_SIZE;
    }
    $parent_ids[]  = $item['parent_id'];
}

查看结果:print_r($data);.

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

对父级之后的每个子级进行排序 的相关文章

  • PHP 会话不适用于游戏

    我正在尝试模仿一款名为 SKUNK 用骰子玩 的游戏来完成一项作业 我无法让会话正常工作 这是我第一次使用 PHP 我还被告知无需会议即可完成 这是我的代码
  • 在 C 中将字符追加到字符数组

    我想将一个字符附加到代表字符串的字符数组中 我正在使用结构来表示字符串 struct String char c int length int maxLength String realloc弄乱了我的数组 当我打印字符串时 它会从内存中打
  • 如何使用自定义比较器以不同的词汇顺序对数组进行排序?

    所以 我对 C 还很陌生 我正在尝试使用自定义比较器来订购数组 我创建了一个类 class MySorter IComparer public int Compare object x object y var chars jngmclqs
  • 是否可以使用 PHP 重定向发送 POST 数据?

    更新 这不是重复的如何使用 PHP 发送 POST 请求 https stackoverflow com questions 5647461 how do i send a post request with php 那里的解决方案对我不起
  • Symfony2 Assetic 和 Less Sourcemaps

    我不确定如何破解 assetic less 过滤器以输出源映射文件 我这里指的是LessFilterhttps github com kriswallsmith assetic blob master src Assetic Filter
  • 对包含元组的元组进行排序[重复]

    这个问题在这里已经有答案了 我有以下元组 其中包含元组 MY TUPLE A Apple C Carrot B Banana 我想根据以下内容对这个元组进行排序second内部元组中包含的值 即 对 Apple Carrot Banana
  • 使用 SSL 证书验证 Web 浏览器

    是否可以使用 ssl 证书对 Web 浏览器进行身份验证 假设我在应用程序中存储私钥 有什么方法可以从浏览器读取密钥并尝试基于该私钥进行身份验证 您可以使用 SSL TLS 客户端证书身份验证来对浏览器 用户进行身份验证 服务器必须请求客户
  • 在 PHP 中撤销 Google 访问令牌

    正如标题所示 我想以编程方式撤销授予的访问令牌 即在 PHP 中 我发现这个他们的网站 https developers google com identity protocols OAuth2WebServer tokenrevoke 但
  • 覆盖控制器 Symfony 3.4/4.0

    我目前正在尝试覆盖 FOSUserBundle 中的控制器 在新的文档中 https symfony com doc 3 4 bundles override html https symfony com doc 3 4 bundles o
  • jQuery Mobile 表单验证

    我有一个移动网站 除了验证之外一切都工作正常 基本上我希望从用户那里获取值 然后在单独的页面 process php 上处理它们 但是 在这样做之前 我需要检查以确保字段已填充 我已经研究了几种方法来做到这一点 但似乎没有一种有效 我现在有
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • php 错误 fopen(): 文件名不能为空

    发送带有附件代码的电子邮件工作正常 最近我们已将文件传输到另一个托管服务器 idk 发生了什么 它显示以下错误 警告 fopen 第 106 行 home hugerecruitmetnt public html validatecva p
  • Doctrine EntityManager 清除嵌套实体中的方法

    我想用学说批量插入处理 http doctrine orm readthedocs org en latest reference batch processing html为了优化大量实体的插入 问题出在 Clear 方法上 它表示此方法
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • ini_set 'session.gc_maxlifetime' 为 1 天

    If I do ini set session gc maxlifetime 86400 这是否意味着用户可以将浏览器留在同一页面 非活动状态 最多 1 天 而不必担心会话被垃圾收集并被注销 如果服务器配置不支持此功能会发生什么 它会给我一
  • 为什么 Composer 降级了我的包?

    php composer phar update这样做了 删除了 2 3 0 软件包并安装了整个 2 2 5 Zend Framework php composer phar update Loading composer reposito
  • Magento - 自定义支付模块

    这是一个非常普遍的问题 但这里是 我正在尝试在 Magento 中创建一个自定义支付模块 我创建了一个 常规 模块 可以连接到 Magento 事件 观察者模型 但是我如何告诉 Magento 将模块视为支付模块 以便它显示在管理后端和结账
  • 如何使用 PHPExcel 库从 Excel 获取日期

    我正在尝试使用 PHPExcel 从 Excel 获取日期 但我没有得到日期 我得到的字符串值不是 1970 以来的秒数 我尝试过的代码是 InvDate trim excel gt getActiveSheet gt getCell B
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a

随机推荐

  • 使用 import java.* 来使用“java”包下的所有子包怎么样?

    import java 为什么我不能进行此导入 我没有导入 java 包的特定子包中的所有类 而是尝试导入 java 包下的所有子包 如何导入所有内置类 java中没有子包这种东西 java util stream不是 的子包java ut
  • STRCHR 与 STRRCHR 有何区别? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我想知道这两种不同用途之间
  • 通过RemoteView设置GradientDrawable

    这就是我想要做的 我有一个小部件 我想根据用户选择的颜色设置其背景 它必须是一个渐变 背景是通过设置 LinearLayout 的背景来设置的 为了进行测试 我对虚拟背景进行了如下操作 remoteViews setInt R id lay
  • WPF DataBound ListBox 添加动画但不滚动

    我有一个绑定到 ObservableCollection 的 WPF ListBox 当我向其中添加项目时 我想要一些动画来 吸引 新来者 的注意力 有许多使用 DataTemplate 触发器和 FrameworkElment Loade
  • 如何为 Telerik RadGrid 中的列标题指定颜色

    我在 asp net 中创建了一个 telerik RadGrid 我的要求是为列标题提供我自己的颜色 我们怎样才能实现这一点 下面是我正在使用的代码结构
  • Seahorse::Client::NetworkingError 使用 Rails 上传 Amazon S3 文件

    在我的 Rails 4 应用程序中 我尝试使用 aws sdk 下载常规 png 文件 然后将其上传到我的 s3 存储桶 使用gem aws sdk gt 2 在开发环境中 代码运行完全正常 但如果我尝试rails s e producti
  • IBM MQ 客户端在 10 分钟后断开连接:IBM.XMS.IllegalStateException

    我正在使用 IBM 的这个示例 我刚刚复制并粘贴了代码 https github com ibm messaging mq dev patterns blob master dotnet dotNetGet cs 我正在连接到 MQ 服务器
  • 如何初始化参数化构造函数的对象数组

    我需要初始化参数化构造函数的对象数组 我怎样才能以最好的方式做到这一点 include
  • 当您使用 Seq(1,2,3) 创建 Seq 对象时会发生什么?

    当您评估表达式时到底会发生什么 Seq 1 2 3 我是 Scala 新手 现在对各种集合类型有点困惑 Seq是一种特质 对吗 所以当你这样称呼它时 Seq 1 2 3 它一定是某种伴生对象吗 或不 它是某种扩展的类吗Seq 最重要的是 返
  • 在 Xamarin 应用程序中使用 Identity Server

    我正在尝试让 Xamarin 应用程序与身份服务器一起使用 我已按照以下步骤操作 1 下载这个 https github com IdentityModel IdentityModel OidcClient Samples tree mas
  • 为什么这段显示图像的代码在构建到 jar 中时会出现“错误”?

    我想通过在 JLabel 上绘制 BufferedImage 来显示图像 x y Offset是在JLabel的中间绘制一个较小的图像 如果我在 IDE 中运行代码 它会正常工作并在我的 JFrame 上显示图像 如果我现在将类构建到 ja
  • 使用 Unicode emoji 动态创建 NSString

    我有字符串 Hi there U0001F603 它正确显示了表情符号 例如Hi there 如果我把它放在UILabel 但我想像这样动态创建它 NSString stringWithFormat Hi there U0001F60 ld
  • 了解分支预测

    有一些关于分支预测的疑问我无法自信地弄清楚 假设我必须使用静态分支预测器 分支预测应该发生在管道的哪个阶段 如何知道预测出错了 数据路径如何知道发生了错误预测 如果它知道发生了错误预测 它如何发送信号以占用未占用的分支 出了问题后 我必须占
  • 在通过代码连接的两个表之间使用更新时出错

    是以下 python pandas DataFrame ID country money code money add other time 832932 Other NaN 00000 NaN N2 N2 N4 0 days 01 37
  • 如何使用值从字典中删除条目

    我有一个字典集合如下 mydic addvalue key1 val1 mydic addvalue key2 val1 mydic addvalue key3 val1 mydic addvalue key4 val2 mydic add
  • 从嵌入式网络聊天发送事件

    我正在尝试从嵌入式网络聊天发送和接收事件 该网络聊天遵循本示例中的网站代码https github com ryanvolum backChannelBot并且机器人实现了来自的代码Bot框架获取内嵌聊天控制页面的ServiceUrl埃泽奎
  • Java - 冻结鼠标

    有没有办法在Java中将鼠标锁定在一个位置一段时间 我试过这个 while timer true Robot bot new Robot bot mouseMove x y 但是 当用户移动鼠标时 它会令人不愉快地来回跳跃 从用户拖动的位置
  • .Net Mvc:如何触发 Application_Error() 管理它们的错误?

    我管理我的所有应用程序错误Application Error in 全局 asax protected void Application Error object sender EventArgs e Exception exception
  • 以编程方式关闭设备

    我正在编写一个应用程序 旨在在一种特定的设备型号 运行基于 Amlogic 的固件的 Android 机顶设备 上运行 我具有 root 功能 并且我的应用程序是使用固件证书签名的 我的应用程序是设备的主要焦点 如果能够启动完全关闭电源将会
  • 对父级之后的每个子级进行排序

    我有一个这样的数组