после использования $ files = new DirectoryIterator () в PHP, как вы сортируете элементы?

Мы можем получить файлы в каталоге на PHP

$files = new DirectoryIterator() 

после этого есть простой способ сортировки элементов в определенном порядке для их отображения? Благодарю.

Не похоже, что есть способ сортировки данных внутри итератора.

Вы можете поместить данные отображения в промежуточный массив с ключом значения, которое вы хотите отсортировать, и вызвать ksort () в массиве. Тем не менее, это займет два прохода.

 $path = "."; $files = new DirectoryIterator($path); $files_array = array(); while($files->valid()) { // sort key, ie. modified timestamp $key = $files->getMTime(); $data = $files->getFilename(); $files_array[$key] = $data; $files->next(); } ksort($files_array); foreach($files_array as $key => $file){ print $key . " => " . $file . "\n"; } 

редактировать:

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

 $files = new DirectoryIterator($path); $i = 0; $paths = array(); while($files->valid()) { $paths[$i++] = $files->getFileName(); $files->next(); } sort($paths) 

Может быть, что вы ищете, вы всегда можете применить функцию сортировки для сортировки путей в зависимости от ваших предпочтений после этого.