我試圖讓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