Oldal: 1 / 1

File nevek dátum sorrendben

Elküldve: 2016.09.20. 10:19
Szerző: balogh33
Sziasztok.
A következő scripttel beolvasom a file neveket és csökkenő sorrendbe rendezem:

Kód: Egész kijelölése

<?php
   ...
   $myDir = opendir("$root");
   while($files = readdir($myDir))
   {
      $file_array[] = $files;
   }
   closedir($myDir);
   rsort($file_array)
   ...

Hogyan lehet a file dátuma szerinti csökkenő sorrendbe rendezni a tömböt?

Re: File nevek dátum sorrendben

Elküldve: 2016.09.20. 12:27
Szerző: gBaSoft
Az array_multisort függvény teszi lehetővé több tömb sorrendezését:

Kód: Egész kijelölése

while ($files = readdir($myDir)) {
   $file_array[] = $files;
   $dateArray[] = date("Y-m-d", filemtime($root.$files));
}
closedir($myDir);
array_multisort($dateArray, SORT_DESC, $file_array, SORT_DESC);

A fenti példa dátum szerint csökkenő, azon belül (ha a dátumok megegyeznek) filenév csökkenő sorrendbe rendezi a $file_array tömböt.

Ha teljesen időrendi sorrend szükséges, akkor a

Kód: Egész kijelölése

$dateArray[] = date("Y-m-d", filemtime($root.$files));

helyett:

Kód: Egész kijelölése

$dateArray[] = filemtime($root.$files);
..
array_multisort($dateArray, SORT_DESC, $file_array);

lehet használni, ami $dateArray szerinti csökkenő sorrendbe rendezi a $file_array tömböt.

Bővebb infó az array_multisort függvényről: PHP Manual, w3schools.com