【发布时间】:2012-12-29 23:04:15
【问题描述】:
我有 2 个长度/深度未知的数组,看起来像这样
[1] => Hand Tools
[2] => Power Tools
[4] => ╚═►Outdoor Tools
[6] => ╚═►dvjdg
[5] => ╚═►Indoor Tools
[7] => ╚═►blaha
[8] => ╚═►blahb
[3] => Garden Tools
和
[1] => 0
[2] => 0
[4] => 1
[6] => 2
[5] => 1
[7] => 2
[8] => 2
[3] => 0
两个数组都使用category id 作为数组索引,第二个数组包含每个类别的深度。第一个数组用于生成 HTML <select> 输入,但我现在需要按字母顺序排列此数组,同时保持正确的类别层次结构。所以我需要得到一个这样的输出数组。
[3] => Garden Tools
[1] => Hand Tools
[2] => Power Tools
[5] => ╚═►Indoor Tools
[7] => ╚═►blaha
[8] => ╚═►blahb
[4] => ╚═►Outdoor Tools
[6] => ╚═►dvjdg
我怎样才能做到这一点?
【问题讨论】:
-
如果您管理它以从该列表中创建一个 RecursiveIterator,您可以对其进行排序:stackoverflow.com/a/2932200/367456
-
我会调查
array_multisort- php.net/manual/en/function.array-multisort.php -
两个数组都有一个已知的深度:1。
-
你是如何将孩子与父母联系起来的。它不能只是深度吗? ...是否带有父母ID?很高兴看到您的原始数组的 print_r ...
-
你可以在下面找到答案,递归迭代器在这里并不是必需的,它向你展示了一些简单的方法来为每个条目创建一个排序键。
标签: php arrays sorting recursion