簡體   English   中英

按日期排序 scandir 降序

[英]sorting scandir by date Descending order

我正在使用此代碼列出目錄

foreach(scandir('back/1') as $folder){
    if (in_array($folder, array('.', '..'))) continue;
    echo basename($folder); // get folder's name
}

但我想按修改時間對輸入的目錄進行排序。

怎么做。

問候

$files = glob('back/1/*',GLOB_ONLYDIR);
foreach ($files as $f){
  $tmp[basename($f)] = filemtime($f);
}
asort($tmp);
$files = array_keys($tmp);

我正在調整您的常識的答案,以按最后修改的時間戳降序排序。 sort 函數來自 joseph dot morphy 在PHP glob 規范頁面上的評論。

if (!function_exists('sort_by_mtime'))   {
    function sort_by_mtime($file1,$file2) {
        $time1 = filemtime($file1);
        $time2 = filemtime($file2);
        if ($time1 == $time2) {
            return 0;
        }
        return ($time1 < $time2) ? 1 : -1;
    }
}

$files = glob('back/1/*',GLOB_ONLYDIR);
foreach ($files as $f){
  $tmp[basename($f)] = filemtime($f);
}
usort($tmp,"sort_by_mtime");
$files = array_keys($tmp);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM