2012-04-05 3 views
1

Вот код, который я использую для получения массива файлов в каталоге.Сортировка файлов каталога по дате создания в php

$dir = "thumbnails/"; 
$images = scandir($dir); 

Как я могу отсортировать массив $ images по дате создания? Я нашел пару способов, но я не мог заставить их работать с моим массивом.

Спасибо,

+2

Почему вы не после того, что вы пробовали? – qitch

+0

array_multisort (array_map ('filemtime', $ images), SORT_DESC, $ images); – user541597

ответ

1

В Windows вы можете получить время создания файла с filectime(). Просто поместите его в массив с именем файла и отсортируйте массив.

Время создания не сохраняется в большинстве файловых систем * nix.

+0

его сервер ftp работает под управлением Linux. – user541597

0

Вы должны сортировать вручную

$dir = "thumbnails/"; 

function compare_time($a, $b) 
{ 
    global $dir; 

    $timeA = filectime("$dir/$a"); 
    $timeB = filectime("$dir/$b"); 

    if($timeA == $timeB) return 0; 

    return ($timeA < $timeB) ? -1 : 1; 
} 

$images = scandir($dir); 
usort($images, 'compare_time'); 
+0

В системе unix вы должны использовать filemtime вместо filectime. – svallory

+0

Как я могу получить доступ к каждому элементу этого массива? – user541597

+0

это просто int-индексированный массив имен файлов. что-то вроде Array ([0] => '.', [1] => '..', [2] => 'afile.jpg'); взгляните на [php.net/scandir](http://php.net/scandir) – svallory