Нужно отсортировать и распечатать изображения из папки

У меня проблема: я пытаюсь создать веб-сайт, на который вы можете загрузить картинку, и после загрузки вы увидите картинку, которую выгрузил предыдущий пользователь.
Изображения хранятся в папке в моем домене, но я не знаю, как их отсортировать по дате, на самом деле я использую этот код, но он не очень хорошо

<?php
$search_dir = "uploads/".$row['Reference_No'];
$images = glob("$search_dir/*.jpg");
sort($images);
//display first image
if (count($images) > 0) { // at least one image exists
$img = $images[0];// first image
echo "<img src='../../$img'  border='0' /> ";
} else {
shuffle($images);
echo "<img src='../../$images'  border='0' /> ";
}

-1

Решение

Извлеките файлы .jpg из целевого каталога, сохраните последнюю модифицированную временную метку и имя файла, отсортируйте по временной метке, затем по имени файла (с удаленным путем), отсортируйте и снова выполните цикл, чтобы вывести массив.

$array=[];
foreach(glob("uploads/{$row['Reference_No']}/*.jpg") as $filename){
// store modified timestamp and path-free filename
$array[]=[filemtime($filename),substr($filename,strrpos($filename,'/')+1)];
}
sort($array);  // sort on modified timestamp, then on filename to break any ties
foreach($array as $a){
echo $a[1],'<br>';  // display the filename
}
0

Другие решения

У меня нет ничего, чтобы проверить это, но в теории это должно работать.

$search_dir = "uploads/".$row['Reference_No'];
$images = glob("$search_dir/*.jpg");

$time = array();
Foreach($images as $file){
$time[] = filemtime($file);
}

array_multisort($time, $images);

Echo $images[0]; // first image
Echo end($images); // last image

Filemtime получит время последнего изменения. http://php.net/manual/en/function.filemtime.php
Multisort отсортирует два массива с $ time в качестве ведущего массива. http://php.net/manual/en/function.array-multisort.php

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector