Mailinglisten-Archive |
Hi Norbert, Norbert Pfeiffer schrieb: > dann hast Du sicher auch hierfuer keinen Erklaerungsnotstand: > http://www.uris.de/test/div/multisort.php4 > http://www.uris.de/test/div/multisort.php5 > > Habe auch versucht, die Reihenfolge der Spalten in multisort, > so zu veraendern, wie sortiert werden soll, also $FS[3] zuerst. > Aber das ueberlasse ich Dir - erschreck Dich nicht ... :-( ich habe festgestellt, dass bei jedem Aufruf Deiner PHP4- und PHP5-Seite die Sortierung bei array_multisort() anders ausfaellt. Es hat also nichts damit zu tun, dass es in PHP4 anders sein koennte als in PHP5. Ein kurzer Blick in Deinen Code offenbart meiner Ansicht nach die Ursache: <Code-Auszug Anfang> usort($FS, 'compare'); viewer($FS); shuffle($FS); ?><HR><? $eg = array_multisort($FS[0], SORT_STRING, SORT_DESC, $FS[1], SORT_NUMERIC, SORT_DESC, $FS[2], SORT_NUMERIC, SORT_DESC, $FS[3], SORT_NUMERIC, SORT_DESC, $FS[4], SORT_NUMERIC, SORT_DESC); viewer($FS); <Code-Auszug Ende> Wenn Du natuerlich zwischen usort() und array_multisort() den Array $FS mit shuffle() munter zufaellig durcheinander wuerfelst, ist es kein Wunder, wenn auch ein zufaelliges Ergebnis bei der Sortierung mit array_multisort() herauskommt. Sauber waere, bei usort() eine Kopie von $FS (z.B. $FS_usort) zu sortieren und anschliessend $FS oder eben eine exakte Kopie mit array_multisort(). Somit waere sichergestellt, dass beide Funktionen auf derselben Basis sortieren. So ist Deine Versuchsanordnung aber falsch und folglich auch das Ergebnis. Ansonsten hat Sebastian schon Einiges dazu gesagt, so dass ich das Ganze nicht weiter durchgetestet habe. > Und wenn man den Aufwand zwischen usort(); und array_multisort(); > vergleicht, liegt usort(); mit 5 Minuten zum Hinschreiben sowieso > weit vor dieser fragwuerdgen Neuerung ... ;-) Wie bei den frueheren Diskussionen mit den gleichen Argumenten und dem gleichen Ergebnis bleibt diese Aussage auch hier aus meiner Sicht nicht richtig. Mit array_multisort() kriege ich es meist deutlich unter 5 Minuten hin. Aber jedem seine Meinung und seinen bevorzugten Weg. :-) Von daher sollten wir diese Diskussion hier beenden. Du hast Dich bisher nicht von Deiner Meinung abbringen lassen, also lassen wir es damit gut sein. ;-) Viele Gruesse Lutz
php::bar PHP Wiki - Listenarchive