Mailinglisten-Archive |
Hi Norbert, Norbert Pfeiffer schrieb: >> abgesehen davon würde ich es mal so probieren: (ungetestet) > hmm, > http://www.uris.de/test/div/multisort.php4 > das kann wohl noch nicht wirklich ueberzeugen ... :-(( Doch, array_multisort() hat hier richtig sortiert. Die Doku sagt: " Die angegebenen Arrays werden als Spalten einer Tabelle behandelt, welche nach Reihen sortiert werden - ähnlich der SQL Klausel ORDER BY. Das erste Array ist auch das erste in der Sortierreihenfolge. Die in diesem Array gleichen Zeilen (Werte) werden anhand des nächsten angegebenen Arrays sortiert, usw." Wenn Du also alle Arrays als Sortierkriterium angibst, wird auch nach allen sortiert. Gibst Du aber nur einen an, muesste nach meiner Erinnerung auch nur nach einem sortiert werden - eben wie bei ORDER BY in einer SQL-Abfrage. D.h. wandele Sebastians Beispiel mal etwas ab: array_multisort( $FS['ctime'], SORT_NUMERIC, SORT_DESC); So muesste es nur nach der "ctime" sortieren. Das sollte funktionieren, weil auch gilt: "array_multisort() wird zum Sortieren von entweder mehreren Arrays auf einmal, oder eines multidimensionalen Arrays (entsprechend einer von mehreren Dimensionen) benutzt. Bei der Sortierung werden die Schlüsselassoziationen beibehalten." Kann ich aber heute Abend noch mal genau ueberpruefen, wenn das dann noch notwendig ist. >> ... ansonsten sind im Handbuch mehr als genügend Beispiele ... > zwei, http://de3.php.net/manual/de/function.array-multisort.php > zwei, http://de3.php.net/manual/en/function.array-multisort.php > und es sind die gleichen ... ;-) > > Soll ich auch noch die 'User Contributed Notes' zitieren ? > Gleich der erste beschwert sich naemlich ... ;-) ja, weil er die Funktion falsch angewendet hat. Guck Dir doch mal bitte den Array an: array[0][0]=teammember1 [0][1]=teammember2 [0][2]=total_points array[1][0]=teammember1 [1][1]=teammember2 [1][2]=total_points Wenn man hier nach "total_points" sortieren will, dann ist doch der Array falsch aufgebaut (siehe auch Doku-Auszug oben). Da liegt das Problem und nicht bei array_multisort(). Man muss eine Funktion schon so verwenden, wie sie laut Dokumentation zu verwenden ist. Aber das Thema hatten wir bei letzten Mal auch ausfuehrlich diskutiert. :-) Viele Gruesse Lutz
php::bar PHP Wiki - Listenarchive