我试图让scandir();
函数超出其书面限制,我需要的不仅仅是它当前支持的alpha排序。我需要对scandir();
结果进行排序以按修改日期排序。scandir()按修改日期排序
我已经尝试了一些解决方案,我在这里找到了一些其他解决方案,但是没有一个适合我,所以我认为这是合理的。
我试过到目前为止是这样的:
function scan_dir($dir)
{
$files_array = scandir($dir);
$img_array = array();
$img_dsort = array();
$final_array = array();
foreach($files_array as $file)
{
if(($file != ".") && ($file != "..") && ($file != ".svn") && ($file != ".htaccess"))
{
$img_array[] = $file;
$img_dsort[] = filemtime($dir . '/' . $file);
}
}
$merge_arrays = array_combine($img_dsort, $img_array);
krsort($merge_arrays);
foreach($merge_arrays as $key => $value)
{
$final_array[] = $value;
}
return (is_array($final_array)) ? $final_array : false;
}
但是,这似乎并没有工作对我来说,它只有3个结果返回,但它应该返回16分的结果,因为有16个图像在文件夹中。
@dugi试试这个方法。单个目录中的文件名应该是唯一的。因此,它们可以用作关键。然后按照值(修改时间)对数组进行排序,并按照正确的顺序返回键(文件名)。 – 2012-08-12 16:47:45
试过了,像魅力一样工作。谢谢Ryoin。 – Aborted 2012-08-12 17:46:53
工作就像一个魅力! – BSQ 2014-05-21 12:40:46