2016-11-02 2 views
1

그래서 이제 날짜순으로 디렉토리의 이미지 배열을 표시해야합니다 (이름순으로 파일이 표시됨). 필자가 PHP를 이해하지 못해이 함수가 작성한 것은 아닙니다. 여기서 여러 가지 해결책을 시도했지만 구문을 알지 못해도 많은 일을 할 수 없었습니다.날짜순으로 파일 정렬 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); 
} 
+0

http://stackoverflow.com/questions/2667065/sort-files-by-date-in-php –

답변

3

뭔가 트릭을 수행해야합니다

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

} 

희망이 도움이!

+0

큰 감사, 그게 효과가있어! 그리고 DESC 정렬을 적용하는 방법? –

+0

@ JohnDoe'sortBy'를'sortByDesc'로 변경하십시오. 여기에서 콜렉션에 대한 자세한 정보를 찾을 수 있습니다 : https://laravel.com/docs/master/collections#available-methods –

+0

예상대로. 감사. –