Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按日期对文件排序添加了Laravel PHP_Php_Image_File_Laravel_Sorting - Fatal编程技术网

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

按日期对文件排序添加了Laravel PHP,php,image,file,laravel,sorting,Php,Image,File,Laravel,Sorting,因此,现在我需要以添加日期的顺序显示目录中的图像数组(现在它按名称显示文件)。这个函数不是我写的,因为我不懂PHP。我在这里尝试了很多解决方案,但不知道语法,做不了多少 那么如何在这里对文件进行排序呢 public function getPhotos($nav, $page=false) { if($page==false){ $dir = 'img/'.$nav; } else{ $dir = 'img/'.$nav.'/'.$page

因此,现在我需要以添加日期的顺序显示目录中的图像数组(现在它按名称显示文件)。这个函数不是我写的,因为我不懂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);
}

像这样的事情应该可以做到:

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();
        });

}

希望这有帮助

看一看“非常感谢”,它成功了!以及如何应用DESC排序?@JohnDoe将
sortBy
更改为
sortByDesc
。您可以在此处找到有关集合的更多信息:如预期。谢谢。非常优雅,谢谢!我已经映射了整个文件对象,因为我需要关于它的更多信息。你把它做成了小菜一碟。谢谢。