按日期对文件排序添加了Laravel PHP
因此,现在我需要以添加日期的顺序显示目录中的图像数组(现在它按名称显示文件)。这个函数不是我写的,因为我不懂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
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
。您可以在此处找到有关集合的更多信息:如预期。谢谢。非常优雅,谢谢!我已经映射了整个文件对象,因为我需要关于它的更多信息。你把它做成了小菜一碟。谢谢。