2015-01-28 4 views
1

Я хотел бы показать самые последние изображения из 6 папок. Изображения названы так: 20150126.jpg, 20150127.jpg Он работает, но показывает все изображения из 1-го каталога, чем из 2-го каталога и т. Д. Как его смешивать и показывать самые новые изображения?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

Хотя я считаю, что мой ответ верен, напишите свой массив $ pictures здесь (do print_r ($ pictures)) – Ynhockey

ответ

1

Вы можете решить это, растопив массив $pictures. Если вы хотите, чтобы самые последние были наверху, вам нужно сортировать в обратном направлении или выводить их в резерв.

Посмотрите на sort(): http://php.net/manual/en/function.sort.php

EDIT: В соответствии с вашей продукцией, я хотел бы предложить следующий алгоритм (хотя есть несколько способов сделать это):

  1. Получить список каталогов только из родительского каталога. Вы можете использовать glob() с опцией GLOB_ONLYDIR.
  2. Пройдите через каналы, которые вы получаете от 1, и получите имена файлов для каждого каталога (без дополнительной информации о пути). Сначала объедините файлы в новый массив с именем файла. У него будет какая-то форматированная строка (вы можете походить на JSON или просто использовать простой разделитель, как двоеточие). Например, новый массив будет иметь записи: 20150126.jpg: ciazowe, 20150127.jpg: событие и т. Д.
  3. Сортировка этого массива.
  4. Вывод «назад», как вы, только с правильной информацией о пути.
+0

Но он сортируется. Мои папки выглядят следующим образом: folder1, folder2, folder3, и он показывает: images3 folder, images folder2, folder1 images – Szmerd

+0

На самом деле просто отправьте свой массив $ photos здесь. – 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] => [11] => okladki/komercyjne-okladka.jpg [12] => okladki/portrety-okladka.jpg [13] => okladki/[15] => portrety/20150127.jpg [16] => slub/20150126.jpg [17] => slub/20150127.jpg) – Szmerd

0

Вы должны посмотреть сортировку вроде предложенной, а также $ arr = array_slice ($ arr, 0, 6); Чтобы получить необходимые вам данные.

Смежные вопросы