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