本文实例讲述了php遍历目录下文件并按修改时间排序操作。分享给大家供大家参考,具体如下:

php 遍历目录下文件方法

//遍历目录下文件方法
function printdir($dir)
{
    $files = array();
    //opendir() 打开目录句柄
    if($handle = @opendir($dir)){
    //readdir()从目录句柄中(resource,之前由opendir()打开)读取条目,
    // 如果没有则返回false
        while(($file = readdir($handle)) !== false){//读取条目
            if( $file != ".." && $file != "."){//排除根目录
                if(is_dir($dir . "/" . $file)) {//如果file 是目录,则递归
                    $files[$file] = printdir($dir . "/" . $file);
                } else {
                    //获取文件修改日期
                    $filetime = date('y-m-d h:i:s', filemtime($dir . "/" . $file));
                    //文件修改时间作为健值
                    $files[$filetime] = $file;
                }
            }
        }
        @closedir($handle);
        return $files;
    }
}

对返回数组按时间排序

//根据修改时间对数组排序
function arraysort($aa) {
    if( is_array($aa)){
        ksort($aa);
        foreach($aa as $key => $value) {
            if (is_array($value)) {
                $arr[$key] = arraysort($value);
            } else {
                $arr[$key] = $value;
            }
        }
        return $arr;
    } else {
        return $aa;
    }
}
$dir = "/php";
//输出 /php 下所有文件
print_r(arraysort(printdir($dir)));