Php файл сортировки из каталога в порядке убывания (последний сверху)

** Файлы по дате в порядке убывания, как это сделать? **
Нужно показывать файлы по дате самой последней сверху

function list_dir($dn){
if($dn[strlen($dn)-1] != '\\') $dn.='\\';
static $ra = array();
$handle = opendir($dn);
while($fn = readdir($handle)){
if($fn == '.' || $fn == '..') continue;
if(is_dir($dn.$fn)) list_dir($dn.$fn.'\\');
else $ra[] = $dn.$fn;
}
closedir($handle);
return $ra;
}
$filelist = list_dir('D:\xampp\htdocs');
for($i=0;$i<count($filelist);$i++){
$test = Array();
$year = $test[2];
$day = $test[1];
$month = $test[0];
$test = explode("/",date("m/d/Y",filemtime($filelist[$i])));
echo "<span style='color:red;'><b  style='color:green;'>".$day.'-'.month.'-'.$year. '</b> ' . $filelist[$i]."</span><br>";
}
clearstatcache();

0

Решение

Ты можешь использовать glob, затем arsort сортировать от высокого к низкому.

$files = glob("*"); //Fetch all files.
$files = array_combine($files, array_map("filemtime", $files)); //Grab the filetime for each file
arsort($files); //Sort high to low
echo "<pre>";
echo print_r($files, true);
echo "</pre>";

Вывод (после форматирования в таблице)

http://i.imgur.com/SPgMH0q.png

<?php

$files = glob("*"); //Fetch all files.
$files = array_combine($files, array_map("filemtime", $files));
arsort($files);
echo "<table>
<tr>
<th>File</th>
<th>Last modified</th>";
foreach( $files as $file => $date ) {
echo '<tr><td>'. $file .'</td><td>'. date("Y m d g:i:s a", $date).'</td></tr>';
}
echo "</table>";
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]