PHP выборка файлов в каталоге в хронологическом порядке - PullRequest
1 голос
/ 14 марта 2012

У меня есть каталог с файлами, такими как 1245.jpg 123456.jpg 23435.jpg 99.jpg и т. Д.

Если я просто использую opendir (), файлы в массиве сортируются в алфавитном порядке, но я хочу, чтобы файлы сортировались в порядке номеров, на которых основаны их имена.

т.е. алфавитный порядок для вышеуказанного набора 123456 1245 2345 99

В то время как сортировка чисел дала бы 99 1245 2345 123456

Есть ли простой способ сделать это ??

Ответы [ 3 ]

3 голосов
/ 14 марта 2012

Проще всего было бы прочитать весь список имен файлов в массив и отсортировать его непосредственно в php, и только затем обрабатывать файлы.

$directory = "/path/to/the/directory";
$filenames = array();
$iterator = new DirectoryIterator($directory);
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        $filenames[] = (int)$fileinfo->getBasename('.jpg');
    }
}
sort($filenames);
print_r($filenames);
1 голос
/ 14 марта 2012

Как только файлы находятся в массиве, легко использовать sort () .

foreach (glob("folder/*.jpg") as $filename) {
    $files[] = $filename;
}

sort($files, SORT_NUMERIC);

print_r($files);
0 голосов
/ 14 марта 2012

Почему бы просто не прочитать все имена файлов в каталоге в массив, а затем отсортировать массив по своему желанию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...