所以我有以下数据数组:
array (size=10)
0 => int 5
1 => string '5B1' (length=7)
2 => int 4
3 => string '4B1' (length=7)
4 => int 3
5 => string '3B1' (length=7)
6 => int 2
7 => string '2B1' (length=7)
8 => int 1
9 => string '1B1' (length=7)
我想做的是将其排序为:
array (size=10)
0 => string 5B1
1 => int '5' (length=7)
2 => string 4B1
3 => int '4' (length=7)
4 => string 3B1
5 => int '3' (length=7)
6 => string 2B1
7 => int '2' (length=7)
8 => string 1B1
9 => int '1' (length=7)
数字的层次结构从未改变,尽管这里有一个额外的层次:
7 -> 6b2 -> 6b1 -> 6 -> 5b2 -> 5b1 -> 5 4b2 -> 4b1 -> 4 -> 3b2 -> 3b1 -> 3 -> 2b2 -> 2b1 -> 2 -> 1b2 -> 1b1 -> 1 -> b2 -> b1
我想知道在PHP中排序的最佳方式是什么?
一方面,我正在考虑从上到下循环遍历静态层次结构数组,并使用它对动态数组进行排序。
还有其他建议吗
答案很简单,Mark Baker让我走上了正轨。
我最初使用rsort、krsort和array_flicp之间的复杂组合来获得一个几乎有效的解决方案。
将rsort与SORT_NATURAL标志一起使用就达到了目的。