PHP - сортировка массива имен файлов с номерами? - PullRequest
7 голосов
/ 30 декабря 2010

Может кто-нибудь сказать мне, как отсортировать массив, содержащий имена файлов, которые начинаются с цифр?Поскольку строки, начинающиеся с 11, 12, 13 и т. Д., Считаются ниже 2, мои результаты отображаются следующим образом:

[0] "1. File one.pdf"
[1] "11. File eleven.pdf"
[2] "12. File twelve.pdf"
[3] "2. File two.pdf"
[4] "3. File three.pdf"

Могу ли я что-нибудь сделать, чтобы отсортировать их правильно?

Ответы [ 2 ]

7 голосов
/ 30 декабря 2010

Вы можете использовать natsort .или natcasesort , который не зависит от регистра.Если число больше (например, диакритические знаки), вы должны убедиться, что используете правильную локаль .

Если этого недостаточно, т.е.вы также хотите отсортировать числовые литералы («один», «два», «три»), вы можете использовать usort , что позволяет использовать ваш собственный обратный вызов в качестве функции сравнения.

1 голос
/ 30 декабря 2010

Использование может получить естественный порядок, используя natsort

См.

...