我正在尝试对数组进行排序,以确保任何项的父项始终出现在它之前。例如:
Array
(
[0] => Array
(
[0] => 207306
[1] => Bob
[2] =>
)
[1] => Array
(
[0] => 199730
[1] => Sam
[2] => 199714
)
[2] => Array
(
[0] => 199728
[1] => Simon
[2] => 207306
)
[3] => Array
(
[0] => 199714
[1] => John
[2] => 207306
)
[4] => Array
(
[0] => 199716
[1] => Tom
[2] => 199718
)
[5] => Array
(
[0] => 199718
[1] => Phillip
[2] => 207306
)
[6] => Array
(
[0] => 199720
[1] => James
[2] => 207306
)
)
在上述数组中,由于[1][2](Sam)和[4][2](Tom)尚不存在,因此此处“失败”。在这种情况下,请输出正确结果,因为在他们出现在数组中之前,Sam和Tom的父母已经存在:
Array
(
[0] => Array
(
[0] => 207306
[1] => Bob
[2] =>
)
[1] => Array
(
[0] => 199714
[1] => John
[2] => 207306
)
[2] => Array
(
[0] => 199730
[1] => Sam
[2] => 199714
)
[3] => Array
(
[0] => 199728
[1] => Simon
[2] => 207306
)
[4] => Array
(
[0] => 199718
[1] => Phillip
[2] => 207306
)
[5] => Array
(
[0] => 199716
[1] => Tom
[2] => 199718
)
[6] => Array
(
[0] => 199720
[1] => James
[2] => 207306
)
)
我找到了一个答案https://stackoverflow.com/a/12961400/1278201,它非常接近我的问题,但它似乎只能深入一层(即只有一个父项),而在我的情况下,在层次结构中可能有1或10个级别。
如何对数组进行排序,以便除非其父项已经存在,否则不会出现任何值?