как отсортировать массив файлов в php - PullRequest
0 голосов
/ 13 января 2020

Я читаю все файлы из папки data и хочу отсортировать их.

$dir = 'data';
$all_files = glob($dir.'/*.*');
asort($all_files);

foreach($all_files as $file) {  
    echo $file.'<br />';
}

Код выше дает мне в качестве вывода:

data/1.txt
data/10.txt
data/11.txt
data/2.txt
data/3.txt
...

Как я могу отсортировать их так, что на выходе будет:

data/1.txt
data/2.txt
data/3.txt
...
data/10.txt
data/11.txt

Ответы [ 2 ]

2 голосов
/ 13 января 2020

Добавьте правило сортировки в строку asort:

asort($all_files, SORT_NATURAL);
2 голосов
/ 13 января 2020

strnatcmp

usort($all_files, "strnatcmp");
print_r($all_files);

Или


sort($all_files, SORT_NATURAL | SORT_FLAG_CASE);

Или

Нацорт


natsort($all_files);

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