It doesn't look like there is a way to sort the data within the iterator.
You could place the display data into an intermediary array, with a key of the value you wish to sort by, and call ksort() on the array. This will take two passes over the data however.
$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 . "
";
}
edit:
if you place all of the information that you want to output for the files in the array values, you can simply implode() the array afterwards, instead of looping through the data once again.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…