我了解如何使用标准 php 函数(例如 natsort())使用基本排序,甚至使用 usort() 进行一些自定义排序。我的问题是当有多种形式的变量时如何获得自然排序结果。
例子:
$test = array('3,000 Numeral', '2 A', '2 A+', '2 B', '2 C', '3 A', '3 B', '4 A', '4 A+', '4 B', 'A', 'A+', 'B', 'C');
使用 usort 或 natsort 我们最终得到数组首先输出数值,最后输出字母数字。更糟糕的是,排序函数将逗号分隔的数值视为逗号后面的数字不存在。我们最终得到:
array('2 A', '2 A+', '2 B', '2 C', '3 A', '3 B', '3,000 Numeral', '4 A', '4 A+', '4 B', 'A', 'A+', 'B', 'C')
所以我想我的问题是如何使用高级排序来处理多个级别的排序逻辑,以最终实现自然进程。就像是:
array('A', 'A+', 'B', 'C', '2 A', '2 A+', '2 B', '2 C', '3 A', '3 B', '4 A', '4 A+', '4 B', '3,000 Numeral')