glob () – сортировать по дате

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

Я сделал эту покупку цикла через массив и сортировки его в другой массив, но есть ли более простой (более эффективный) способ сделать это?

Ради потомства, если сообщение, связанное с сообщением в принятом ответе, утеряно или нечеткое для кого-то, необходим соответствующий код:

<?php $myarray = glob("*.*"); usort($myarray, create_function('$a,$b', 'return filemtime($a) - filemtime($b);')); ?> 

Протестировано это в моей системе и проверил, что он сортирует файл mtime по желанию. Я использовал аналогичный подход (написанный на Python) для определения последних обновленных файлов на моем сайте.

 <?php $items = glob('*', GLOB_NOSORT); array_multisort(array_map('filemtime', $items), SORT_NUMERIC, SORT_DESC, $items); 

Это решение такое же, как и принятый ответ , обновленный анонимной функцией 1 :

 $myarray = glob("*.*"); usort( $myarray, function( $a, $b ) { return filemtime($a) - filemtime($b); } ); 

1 Анонимные функции были введены в PHP в 2010 году. Оригинальный ответ датирован 2008 годом.