Я пытаюсь отобразить массив файлов по порядку даты (последнее изменение).
Я сделал эту покупку цикла через массив и сортировки его в другой массив, но есть ли более простой (более эффективный) способ сделать это?
Ради потомства, если сообщение, связанное с сообщением в принятом ответе, утеряно или нечеткое для кого-то, необходим соответствующий код:
<?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 годом.