Mailinglisten-Archive |
>Auf meinem Localhost (mit PHP-Version 4.0.2, Personal Webserver) geht alles, >aber auf dem Webserver (bei godau.org, PHP-Version 4.0.5 auf einem >Linux-Server) funktionierts nicht richtig. Ich bekommen einen Fehler in >Zeile 46. Nico, wie dieser Fehler lautet, hast Du uns aber immer noch nicht gesagt ... ><?php > >$buch[]=array("","Kowalewska","Hanna","kowal_1.php","Polnische Sonate"); >$buch[]=array("","Aakeson","Kim Fupz","aakeson1.php","Ulla und alles"); > >sort($buch); // hier soll das Problem Buch ist ein mehrdimensionales array, sort sortiert ein array nach seinen Werten. Wie soll PHP denn die Werte (==arrays) vergleichen? >if(_(at)_$sortflag=="auf") { array_multisort($buch, SORT_DESC); } // gegen das >if(_(at)_$sortflag=="ab") { array_multisort($buch, SORT_ASC); } // nach dem Warum sortierst Du denn hier nochmal? Dein Problem ist mit Hilfe der Funktion usort zu lösen: Nehmen wir an, Du möchtest nach der 1. Spalte der einzelnen buch-Einträge sortieren, dann brauchst Du eine Vergleichsfunktion function buch_cmp1($b1, $b2) { return strcmp($b1[1], $b2[1]); } und an der Stelle, wo jetzt Dein sort steht: usort($buch, 'buch_cmp1'); Wenn Du in die andere Reichtung und z.B. case-insensitive sortieren willst, mußt Du Dir eine andere Vergleichsfunktion nehmen, z.B. function buch_cmp_irev($b1, $b2) { $vgl = strcasecmp($b1[1], $b2[1]); return $vgl < 0 ? 1 : ($vgl > 0 ? -1 : 0); } -- Thomas Beckmann, Kiel, Germany thomas_(at)_ThBeckmann.de
php::bar PHP Wiki - Listenarchive