сортировка — Как PHP readdir / opendir сортировать

Интересно, почему при вызове следующего кода файлы (имена) в массиве всегда сортируются по-разному? Как работает PHP opendir сортировать файлы и как я могу изменить его в системе, не помещая его сначала в массив, который я затем сортирую?

$dh  = opendir($dir);
do {
$files_in_dir[] = $filename;
}
while (false !== ($filename = readdir($dh)));

1

Решение

Записи возвращаются в том порядке, в котором они хранятся в файловой системе.

http://php.net/manual/en/function.readdir.php

1

Другие решения

В качестве предложения используйте PHP«s ScanDir () вместо этого, как функция PHPОфициальный документ определяет это:

scandir — список файлов и каталогов внутри указанного пути

А также поддерживает сортировку.

По умолчанию отсортированный алфавитный порядок в порядке возрастания. Если для дополнительного параметра sorting_order задано значение SCANDIR_SORT_DESCENDING, порядок сортировки будет в алфавитном порядке в порядке убывания. Если установлено значение SCANDIR_SORT_NONE, то результат не сортируется.

1

По вопросам рекламы [email protected]