Php 根据id和父id属性对集合(或对象数组)排序
我在基于对象id和对象的父id属性对Laravel集合进行排序时遇到了一个问题 目前,我有以下格式的对象集合:Php 根据id和父id属性对集合(或对象数组)排序,php,sql,laravel,algorithm,sorting,Php,Sql,Laravel,Algorithm,Sorting,我在基于对象id和对象的父id属性对Laravel集合进行排序时遇到了一个问题 目前,我有以下格式的对象集合: Collection {#563 ▼ #items: array:20 [▼ 0 => Object {#546 ▶} 1 => Object {#544 ▶} 2 => Object {#540 ▶} 3 => Object {#542 ▶} 4 => Object {#541 ▶} 5 => O
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"
]
我需要对集合进行排序,首先是父集合,然后是子集合。然后是父母和孩子。一个对象的父对象id为NULL。更像这样:
Parent
Child
Child
Parent
Parent
Child
Child
Child
Parent
按父id(从低到高)排序集合,如果父id相等,则按id(从低到高)排序集合
这种方法假设集合中的第一个元素应该是根父元素(父元素id为NULL的元素),并且为了使对象成为对象的父元素,父元素必须首先存在,因此父元素的id总是比其子元素的id低。按父元素id(从低到高)对集合排序,如果父id相等,则按id(从低到高)
这种方法假设集合中的第一个元素应该是根父元素(父元素id为NULL的元素),并且为了使对象成为对象的父元素,父元素必须首先存在,因此父元素的id总是比其子元素的id低。这里有一个有向图,恐怕您必须实现拓扑排序算法:使用
groupBy()
parent\u id
?您尝试了什么?:)请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南,在这里申请。StackOverflow不是设计、编码、研究或教程资源。然而,如果您遵循您在网上找到的任何资源,进行诚实的编码尝试,并遇到问题,您将有一个很好的示例来发布。两级排序是有很好的文档记录的。许多有用的树排序都有很好的文档记录。在提供可行的编码尝试时,您遇到了什么困难?您有一个有向图,恐怕您必须实现一个拓扑排序算法:groupBy()