Сортировать массив по дате до нумерации страниц после чтения

У меня есть код для отображения изображений из папки с нумерацией страниц. Мне нужно изменить его так, чтобы оно отображало самое новое изображение сначала на первой странице, а самое старое на последней странице. Я попробовал несколько методов, но ничего не работает. Пожалуйста помоги!

$mydir = opendir($maindir) ;
$limit = 78;
$offset = ((int)$_GET['offset']) ? $_GET['offset'] : 0;
$files = array();
$page='';
$exclude = array( ".", "..", "index.php",".htaccess","guarantee.gif") ;
while($fn = readdir($mydir))
{
if (!in_array($fn, $exclude))
{
$files[] = $fn;;
}
}
closedir($mydir);
sort($files);
$newICounter = (($offset + $limit) <= sizeof($files)) ? ($offset + $limit) : sizeof($files);
for($i=$offset;$i<$newICounter;$i++) {
//SHOW THE IMAGES HERE
};

0

Решение

Вы можете заказать файлы по времени их изменения:

<?php

$mydir = opendir($maindir) ;
$limit = 78;
$offset = ((int)$_GET['offset']) ? $_GET['offset'] : 0;
$files = array();
$page='';
$exclude = array( ".", "..", "index.php",".htaccess","guarantee.gif") ;

while(false !== ($img_file = readdir($mydir))){
if (!in_array($img_file, $exclude)){
# <<<<<<<<<<<<<< CHANGE 1 <<<<<<<<<<<<<<<<
//Put the creation date as the array's key:
$files[date('Y m d, H:i:s',filemtime($img_file))] = $img_file;
}
}

closedir($mydir);

# <<<<<<<<<<<<<< CHANGE 2 <<<<<<<<<<<<<<<<
//order files by date in ascending order:
ksort($files);
//reverse the array (you need the newest files first)
$files = array_reverse($files, false);
/*NOTE: in this point you have your images in $files array which are ordered by the file modification time of each file, so you only need the code to display them. I don't know how are you displaying your images, but that is the easiest part of the problem.*/
foreach($files as $a_image){
echo "<img href='" . $maindir . $a_image ."' alt='Image not found' width='100%' height='auto'/>";
}
?>

Трудно получить точное время создания файла на всех платформах. Поэтому я рекомендую вам объединить текущую дату с именем файла при его создании.

0

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

Других решений пока нет …

По вопросам рекламы [email protected]