按添加日期对文件进行排序Laravel PHP

Joh*_*Doe 2 php sorting image file laravel

因此,现在我需要按添加日期的顺序显示目录中的图像数组(现在它按名称显示文件)。该函数不是我写的,因为我不了解PHP。我在这里尝试了多种解决方案,但是在不知道语法的情况下不能做很多事情。

那么如何在这里对文件排序?

public function getPhotos($nav, $page=false)
{
    if($page==false){
        $dir = 'img/'.$nav;
    }
    else{
        $dir = 'img/'.$nav.'/'.$page;           
    }
    $files = FILE::allFiles($dir);
    foreach($files as $file){
        if(pathinfo($file, PATHINFO_EXTENSION)=='png' or pathinfo($file, PATHINFO_EXTENSION)=='gif' or pathinfo($file, PATHINFO_EXTENSION)=='jpg'){
            $result[] = (string)explode("$page\\",$file)[1];
        }
    }
    echo $json_response = json_encode($result);
}
Run Code Online (Sandbox Code Playgroud)

Rwd*_*Rwd 7

这样的事情应该可以解决问题:

public function getPhotos($nav, $page = false)
{
    $dir = 'img/' . $nav;

    if ($page !== false) {
        $dir .= '/' . $page;
    }

    return $files = collect(File::allFiles($dir))
        ->filter(function ($file) {
            return in_array($file->getExtension(), ['png', 'gif', 'jpg']);
        })
        ->sortBy(function ($file) {
            return $file->getCTime();
        })
        ->map(function ($file) {
            return $file->getBaseName();
        });

}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!