У меня есть несколько файлов, которые я загружаю в слайд-шоу, я их пронумеровал клиентом в том порядке, в котором они хотели бы отображаться.Как отсортировать массив элементов как чисел?
Я захватывая их с Glob $pics = glob("images/slideshow/*.jpg", GLOB_NOSORT);
, но по какой-то причине я получаю старую ошибку сортировки для Windows, 11 сортируется выше 2.
Например,
Array
(
[0] => images/slideshow/1.jpg
[1] => images/slideshow/14.jpg
[2] => images/slideshow/15.jpg
[3] => images/slideshow/16.jpg
[4] => images/slideshow/18.jpg
[5] => images/slideshow/2.jpg
[6] => images/slideshow/20.jpg
[7] => images/slideshow/21.jpg
[8] => images/slideshow/22.jpg
[9] => images/slideshow/23.jpg
[10] => images/slideshow/24a.jpg
[11] => images/slideshow/25.jpg
[12] => images/slideshow/26.jpg
[13] => images/slideshow/29.jpg
[14] => images/slideshow/3.jpg
[15] => images/slideshow/36.jpg
[16] => images/slideshow/38.jpg
[17] => images/slideshow/4.jpg
[18] => images/slideshow/40.jpg
[19] => images/slideshow/41.jpg
[20] => images/slideshow/5.jpg
[21] => images/slideshow/6.jpg
[22] => images/slideshow/7.jpg
)
Я запустите его через asort()
, и я не могу понять, почему это не работает, если не считать того, что они являются строками, а не строгими числами.
это не ошибка, PHP будет рассматривать ваш путь как строку, как это предполагается сделать, вы должны сказать ему, в частности, для сортировки на основе файла –
Windows, используемый, чтобы сделать это, я не имею в виду PHP :) –
Возможный дубликат [Сортировка имени файла php] (http://stackoverflow.com/questions/1893818/php-filename-sorting) – salathe