Как я могу сначала показать последнее загруженное изображение?(PHP + CSS) - PullRequest
0 голосов
/ 02 июля 2011

Я новичок в PHP и в основном я пытаюсь отобразить галерею изображений, которая получает фотографии из папки.Дело в том, что я хочу, чтобы изображение с самой последней датой загрузки отображалось в самом начале, и так далее, до самой старой в нижней части.

Вот как выглядит мой PHP (важный бит, который яугадайте)

$files = scandir('uploads/thumbs');
$ignore = array( 'cgi-bin', '.', '..');
foreach ($files as $file) {
    if(!in_array($file, $ignore)) {
        echo '<img src="uploads/thumbs/' . $file . '" />';
         }
}

Я хотел бы знать, есть ли способ с помощью PHP или, возможно, с небольшой помощью CSS, отображать их в обратном порядке, чтобы новый всегда отображался вверху страницы.

Любая помощь или предложение очень ценится, с уважением из Аргентины!

1 Ответ

1 голос
/ 02 июля 2011

Рядом с вашим $files вы можете получить время модификации каждого файла, а затем отсортировать массив $files на основе полученных значений времени. Функция, которая сортирует два или более массивов по значению массива: array_multisort:

$files = scandir($path);
$ignore = array( 'cgi-bin', '.', '..');

# removing ignored files
$files = array_filter($files, function($file) use ($ignore) {return !in_array($file, $ignore);});

# getting the modification time for each file
$times = array_map(function($file) use ($path) {return filemtime("$path/$file");}, $files);

# sort the times array while sorting the files array as well
array_multisort($times, SORT_DESC, SORT_NUMERIC, $files);

foreach ($files as $file) {
    echo '<img src="uploads/thumbs/' . $file . '" />';
}
...