glob () - Сортировать по имени

Как я могу отменить сортировку по имени файла? В настоящее время он отображает все текстовые файлы в алфавитном / числовом порядке, но я пытаюсь отобразить его в порядке убывания. Сейчас-да...

<?php  
foreach (glob("*.txt") as $filename) {
   include($filename);
}
?>

Я довольно новичок в PHP, но я попробовал usort с добавленным массивом, но это просто привело к отображению только 1 текстовых файлов, поэтому либо это не работает, либо я просто закодировал его неправильно.

3 ответов


можно использовать array_reverse:

foreach(array_reverse(glob("*.txt")) as $filename) { ...

лучший способ сделать это с usort() будет...

usort($files, function($a, $b) {
    return strcmp($b, $a);
});

CodePad.


Как glob() функция сортирует имена файлов как поведение по умолчанию, вы можете просто перебирать результирующий массив в обратном порядке и, следовательно, избегать любой дополнительной обработки:

<?php
for($result = glob("*.txt"), $i = count($result); $i > 0; --$i) {
    include($result[$i-1]);
}
?>