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

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

$files = new DirectoryIterator() 

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

 hakre25 нояб. 2012 г., 18:25
 Derek 朕會功夫28 мая 2012 г., 06:29
@ & # X52D5; & # x975C; & # x80FD; & # x91CF; - Вы китаец?

Ответы на вопрос(2)

Решение Вопроса

Вы можете поместить отображаемые данные в промежуточный массив с ключом значения, по которому вы хотите отсортировать, и вызвать 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)

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

Ваш ответ на вопрос