2015-01-28 2 views
1

6 개의 폴더에서 가장 최근 이미지를 표시하고 싶습니다. 이미지의 이름은 다음과 같습니다. 20150126.jpg, 20150127.jpg 작동하지만 두 번째 디렉토리보다 1 번째 디렉토리의 모든 이미지를 표시합니다. 어떻게 혼합하여 최신 이미지를 표시합니까?PHP 폴더에서 가장 최근 이미지 표시

$directory = "*/"; 
$pictures = glob("" . $directory . "*.jpg"); 
$no_pictures = count($pictures)-1; 
$limit = $no_pictures-8;   
for($i = $no_pictures; $i >= $limit; $i--){ 
echo "<img width='300px' src=\"".$pictures[$i]."\" />\n"; 
} 
+0

이미지 이름이 단순히 타임 스탬프 인 것처럼 보이므로 가장 높은 숫자에서 가장 낮은 숫자로 정렬 할 수 있습니다. 나는 PHP에서 닌자가 아니지만 일부는 natsort 함수()를 사용하도록 제안합니까? – robjez

+0

내 대답은 정확하다고 생각하지만 $ picture 배열을 여기에 게시하십시오 (print_r ($ pictures)) – Ynhockey

답변

1

$pictures 어레이를 추출하여 해결할 수 있습니다. 가장 최근의 것을 가장 위에 놓고 싶다면, 역순으로 정렬하거나 예비로 출력하고 싶을 것이다.

sort()에서

봐 : http://php.net/manual/en/function.sort.php

편집 :

  1. 디렉토리의 목록을 가져옵니다 : 당신의 출력에 따라, 나는 (그것을 할 수있는 여러 가지 방법이 있지만) 다음과 같은 알고리즘을 제안 부모 dir에서만. glob()을 GLOB_ONLYDIR 옵션과 함께 사용할 수 있습니다.
  2. 1에서 가져온 dirs를 반복하고 추가 경로 정보없이 각 디렉토리의 파일 이름을 가져옵니다. 파일을 먼저 새 배열로 병합하십시오. 형식이 지정된 문자열이 있습니다 (JSON으로 멋지게 들어가거나 콜론과 같은 간단한 구분 기호를 사용하면됩니다). 예를 들어, 새 배열에는 다음 항목이 있습니다. 20150126.jpg : ciazowe, 20150127.jpg : 이벤트 등
  3. 이 배열을 정렬하십시오.
  4. 올바른 경로 정보 만 사용하여 "뒤로"출력합니다.
+0

하지만 정렬합니다. 내 폴더는 다음과 같이 보입니다 : folder1, folder2, folder3 그리고 그것은 보여줍니다 : folder3 images, folder2 images, folder1 images – Szmerd

+0

실제로 $ picture 배열을 여기에 게시하십시오. – Ynhockey

+0

Array ([0] => ciazowe/20150126.jpg [1] => ciazowe/20150127.jpg [2] => dzieci/20150126.jpg [3] => dzieci/20150127.jpg [4] => 20150126.jpg [5] => 이벤트/20150127.jpg [6] => komercyjne/20150126.jpg [7] => komercyjne/20150127.jpg [8] => okladki/ciazowe- okladka.jpg [9] => okladki/oklawk/okladka.jpg [10] => okladki/event-okladka.jpg [11] => okladki/portrety-okladka.jpg [13] => slub-okladka.jpg [14] => portrety/20150126.jpg [15] => portrety/20150127.jpg [16] => slub/20150126.jpg [17] => slub/20150127.jpg) – Szmerd

0

정렬과 마찬가지로 $ arr = array_slice ($ arr, 0, 6); 요구 사항을 얻으려면 6.

관련 문제