如何使用PHP opendir()按日期排序

如何使用PHP opendir()按日期排序,php,directory,echo,opendir,Php,Directory,Echo,Opendir,我有一个目录,里面满是我要回显的文件。如果文件是图像,则图像本身将被回显。如果文件不是图像,则会回显文件名 下面的代码非常有效,但是我似乎无法按日期排序。这些文件被随机地回显出来 如何使文件按上次修改(最新优先)排序 //在循环外部创建一个空数组 $files=array(); while(false!==($entry=readdir($handle)){ if(在数组中(结束($分解),$有效图像)){ //使用filemtime作为数组键,将其添加到数组中,而不是回显字符串 $files

我有一个目录,里面满是我要回显的文件。如果文件是图像,则图像本身将被回显。如果文件不是图像,则会回显文件名

下面的代码非常有效,但是我似乎无法按日期排序。这些文件被随机地回显出来

如何使文件按上次修改(最新优先)排序


//在循环外部创建一个空数组
$files=array();
while(false!==($entry=readdir($handle)){
if(在数组中(结束($分解),$有效图像)){
//使用filemtime作为数组键,将其添加到数组中,而不是回显字符串
$files[filemtime($file)]=''.date('dfy',filemtime($file))。“
”; }否则。。。 } //数组上的反向排序 krsort($文件); //在循环中输出数组 foreach($files作为$file){ echo$文件; }
结帐谢谢,但我不确定在这种情况下如何结帐
<?php


$blacklist = array("index.php");
$ext = pathinfo($files, PATHINFO_EXTENSION);

if ($handle = opendir('.')) {

    $valid_image = array("jpg", "jpeg", "png", "gif");

    while (false !== ($entry = readdir($handle))) { 
       krsort($entry);

        if ($entry != "." && $entry != ".." && !in_array($entry, $blacklist)) {

            $exploded = explode('.', $entry);

            if(in_array(end($exploded), $valid_image))
            {
              echo "<div><h4>"; echo date('d F Y', filemtime($file)) . "</h4><a href='" . $entry . "'><img src='".$entry."'></a></div><hr>";
            }
            else
            {
              echo "<div><h4>"; echo date('d F Y', filemtime($file)) . "</h4><a href='" . $entry . "'>" . $entry . "</a></div>";
            }
        } 
    }
    closedir($handle);
}
?>
// Create an empty array, outside your loop
$files = array();

while (false !== ($entry = readdir($handle))) { 
    if(in_array(end($exploded), $valid_image)){

       // Instead of echoing the string, add it to the array, using filemtime as the array key
       $files[filemtime($file)] = "<div><h4>".date('d F Y', filemtime($file)) . "</h4><a href='$entry'><img src='$entry'></a></div><hr>";

    } else...
}

// reverse sort on the array
krsort($files);        

// output the array in a loop
foreach($files as $file){
    echo $file;
}