在PHP中对数据数组进行排序的最佳方法

时间:2016-01-07 19:12:11

标签: php arrays sorting

所以我有以下数据数组:

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中对此进行排序的最佳方法是什么?

一方面,我正在考虑从上到下循环遍历静态层次结构数组,并使用它来命令动态数组。

还有其他建议吗?

1 个答案:

答案 0 :(得分:0)

答案很简单,Mark Ba​​ker让我走上正轨。

我最初使用rsort,krsort和array_flip之间的复杂混合来获得几乎可行的解决方案。

使用带有SORT_NATURAL标志的rsort可以解决问题。