Arrays nach bestimmten inhalten sortieren

Kiramusu

Grünschnabel
Ich habe nach dem zeilenweisen Auslesen einer Datei ein array, das die Daten wie folgt beinhaltet:

array[0] = "24.11.02|bild.jpeg|2400 kb";
array[1] = "23.11.01|bild2.jpeg|4500 kb";
etc...


Nun würde ich gerne dieses Array auf Wunsch des Benutzers nach seinen einzelnen Rubriken (Datum, Datei, Größe der Datei) sortieren...

Meine Frage: Ist das mit Textdateien als Datenbanl möglich ? Und wenn, wie ?

Danke
 
Es wäre möglich, wenn du die Arrays in multidimensionale Arrays aufsplitten würdest.
Code:
( $array[0][date], $array[0][filename], $array[9][size]
usw )
Denn dann könntest du folgende Funktion benutzen:
PHP:
function array_csort() {  //coded by Ichier2003
   $args = func_get_args();
   $marray = array_shift($args);

   $msortline = "return(array_multisort(";
   foreach ($args as $arg) {
       $i++;
       if (is_string($arg)) {
           foreach ($marray as $row) {
               $sortarr[$i][] = $row[$arg];
           }
       } else {
           $sortarr[$i] = $arg;
       }
       $msortline .= "\$sortarr[".$i."],";
   }
   $msortline .= "\$marray));";

   eval($msortline);
   return $marray;
}
(Quelle: Kommentare zu der Funktion array_multisort)
Benutzt wird die Funktion folgendermaßen:
PHP:
$array = array_csort($array, 'date', SORT_DESC);
Du kannst auch nach mehreren Teilen sortieren lassen:
PHP:
$array = array_csort($array, 'date', SORT_DESC, 'filename', SORT_ASC);
Das einzige Problem an dieser Funktion ist, dass das Datum als Timestamp vorhanden sein sollte und nicht als TT.MM.JJ
 
Zurück