PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prob: richtiges Sortieren von Dateinamen


Mathias172
21.10.2002, 15:27:21
Hallo!

Mein Problem:
Ich habe Dateien von folgender Form: "01.04.2002 bis 05.04.2002.anh" - also eine Montag-bis-Freitag-Übersicht ähnlich einem Tagebuch.

Leider weiss ich aber nicht, wie ich sie "richtig" sortieren kann.
Die Sortierung soll (aufsteigend/absteigend egal) chronologisch sein.

1. Priorität: Jahreszahl
2. Priorität: Monat
3. Priorität: Tag

Ich möchte vermeiden, die Dateinahmen zu ändern weil es Unmengen von Dateien sind.

Kann mir bitte irgendjemand helfen?

CyberAge
21.10.2002, 18:35:58
ich nehme mal an, du arbeitest mit einer Datenbank, oder? Wenn ja, dann trage die Daten doch per Unix-Timestamp ein, also die anzahl sekunden, die nach dem 01.01.1970 vergangen sind. somit ist das sortieren kinderleicht. erstellen kannst du diese unixzeit beim eintragen durch mktime() mit den entsprechenden Parametern, umwandeln in lesbare kannst du das mit date(). hier mal der Link zu den jeweiligen beschreibungen:

http://www.php-center.de/de-html-manual/function.date.html für date()
http://www.php-center.de/de-html-manual/function.mktime.html für mktime()

Mathias172
21.10.2002, 22:23:26
Oh, hab ich vergessen zu sagen...
Leider steht mir keine Datenbank zur Verfügung :(

Matthias
21.10.2002, 23:42:29
So sollte es klappen:
<?
$dir=opendir("test");
while($file=readdir($dir))
{
if(!is_dir($file))
{
$afile[]=array(substr($file,6,4).substr($file,3,2).substr($file,0,2),$file);
}
}
closedir($dir);
if(count($afile))
{
foreach($afile as $v) $s[]=$v[0];
array_multisort($s,SORT_NUMERIC,SORT_ASC,$afile);
}
for($i=0;$i<count($afile);$i++)
{
echo $afile[$i][1]."<br>";
}
?>
Alle Dateien die sich im Ordner Test befinden und die Namen der Dateien in der YYYYMMDD schreibweise werden in ein Mehrdimensionales Array geschrieben. Dieses kann dann sortiert werden.

Mathias172
22.10.2002, 07:47:48
Allerbesten Dank, funktioniert super!
PHP is´ schon ´ne geile Sprache :))