【发布时间】:2019-08-27 11:53:20
【问题描述】:
我遇到了基于对象 id 和对象的 parent_id 属性对 Laravel 集合进行排序的问题。
目前,我有以下格式的对象集合:
Collection {#563 ▼
#items: array:20 [▼
0 => Object {#546 ▶}
1 => Object {#544 ▶}
2 => Object {#540 ▶}
3 => Object {#542 ▶}
4 => Object {#541 ▶}
5 => Object {#536 ▶}
]
}
每个对象都有以下属性:
#attributes: array:8 [▼
"id" => "70"
"name" => "Object Name 70"
"parent_id" => "75"
]
我需要对该集合进行排序,首先是父项,然后是子项。然后是父母和孩子。一个对象的 parent_id 为 NULL。更像是这样的:
Parent
Child
Child
Parent
Parent
Child
Child
Child
Parent
【问题讨论】:
-
你有一个有向图,恐怕你必须实现一个拓扑排序算法:en.wikipedia.org/wiki/Topological_sorting
-
groupBy()parent_id不是更好吗? -
你试过什么? :)
-
请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 On topic、how to ask 和 ... the perfect question 在此处申请。 StackOverflow 不是设计、编码、研究或教程资源。但是,如果您遵循您在网上找到的任何资源,进行诚实的编码尝试并遇到问题,那么您将有一个很好的示例可以发布。
-
两级排序有据可查。几个有用的树排序有据可查。您在提供可行的编码尝试时遇到了哪些困难?
标签: php sql laravel algorithm sorting