我有一个SQL查询返回的这个对象数组,其中top_id是我的父ID字段:
Array (
[0] => stdClass Object ( [id] => 1 [top_id] => 0 [name] => Cat 1 )
[1] => stdClass Object ( [id] => 2 [top_id] => 0 [name] => Cat 2 )
[2] => stdClass Object ( [id] => 3 [top_id] => 0 [name] => Cat 3 )
[3] => stdClass Object ( [id] => 4 [top_id] => 2 [name] => Subcat 1 )
[4] => stdClass Object ( [id] => 5 [top_id] => 2 [name] => …Run Code Online (Sandbox Code Playgroud) 如何对SELECT语句的记录进行排序,使它们代表有效的树?
我的所有尝试都显示子节点嵌套在错误的父节点下.实现这种排序的最可靠方法是什么?
数据
ID Parent ID Title
--------------------------------------------
0 NULL Root
1 0 Node A
2 0 Node B
3 1 Sub-Node C
4 1 Sub-Node D
5 3 Sub-Node E
Run Code Online (Sandbox Code Playgroud)
产量
ID Parent ID Title
--------------------------------------------
0 NULL Root
1 0 Node A
3 1 Sub-Node C
5 3 Sub-Node E
4 1 Sub-Node D
2 0 Node B
Run Code Online (Sandbox Code Playgroud)
数据可视化
Root
Node A
Sub-Node C
Sub-Node E
Sub-Node D
Node B
Run Code Online (Sandbox Code Playgroud)