Я понимаю, как использовать базовую сортировку со стандартными функциями php, такими как natsort() и даже некоторые пользовательские сортировки, используя usort(). Мой вопрос заключается в том, как получить результат естественной сортировки, когда существует множество форм переменных.Расширенная сортировка PHP
Пример:
$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 мы в конечном итоге с массивом выводя числовые значения первого и алфавитно-цифровой Last. Хуже того, функции сортировки обрабатывают числовые значения, разделенные запятыми, как если бы числа после запятой не существовали. Мы в конечном итоге с:
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')
Вы сказали это, usort(). Если вы можете объяснить, как что-то должно быть отсортировано, вы можете реализовать его с помощью usort. –