Rolf B: Oder ... nach Rolfs Idee

Beitrag lesen

Hallo ursus,

patsch - meine Stirn ist jetzt etwas flacher.

Fazit: sehe ich auch so, usort behandelt -1 und 0 gleich. Das passt auch zu den üblichen Sortieralgorithmen, die entscheiden binär auf "tauschen" oder "nicht tauschen". Weil $a<=>$b == 1 bedeutet, dass $a > $b ist, ist nur dann eine Fehlstellung im Array vorhanden, die einen Tausch erfordert. Typischer Fall von DUH!

Der Witz ist nur: Es ändert gar nichts. Ob man $a <=> $b oder 1 == ($a <=> $b) verwendet - die Sortierreihenfolge ist gleich. Erst die Großbuchstaben, dann die Kleinbuchstaben. Aufsteigende Sortierung gemäß ASCII-Code. Mit $b <=> $a oder -($a <=> $b) erhält man absteigende Sortierung nach Ascii-Code.

Aber was will unser Rückwärtshenker nun eigentlich? Der array_reverse hat geholfen? D.h. die von einem usort gelieferte Sortierung wird gespiegelt? Das ist nun eigentlich zu aufwändig, es sei denn die usort-Sortierung liegt aus anderen Gründen eh schon vor. Wenn man mit usort aufsteigend sortiert und dann reversiert, ist es wohl besser, gleich absteigend zu sortieren. Wie das geht - siehe oben.

Mein Gedanke war ja die ganze Zeit, dass alphabetisch sortiert werden sollte, aber mit den kleinbuchstaben vor den GROSSbuchstaben (sozusagen native EBCDIC Reihenfolge). Und das sähe ganz anders aus.

Rolf

--
sumpsi - posui - clusi