Der Martin: alphabetisches sortieren von mehrdimensionalen arrays

Beitrag lesen

Hallo,

Außerdem vergleichst du immer nur das erste Zeichen deiner Strings. Das heißt, die Wörter "Auspuff", "Anpfiff", "ähnlich", "ätsch" und "aaa" sortieren alle gleichrangig.
stimmt, hab ich nicht bedacht :-(

okay, Schwäche erkannt. Ist ein guter Anfang. ;-)

Was meinst du mit "auch nicht am Anfang"?
das erst Ä dann A kommt, dacht das ist üblich wenn man alphabetisch sortiert oder liege ich da falsch?

Ich habe nicht den Eindruck, dass das üblich ist. In Telefonbüchern werden Wörter/Namen mit Umlauten immer ziemlich willkürlich einsortiert, das scheint keiner Regel zu folgen. Ich selbst würde, soweit es die Sortierung betrifft, 'a' und 'ä' identisch behandeln, was wiederum zur Folge hat, dass Wörter, die mit 'a' oder 'ä' beginnen, durchmischt werden, je nachdem, welcher Buchstabe danach folgt.

Was in deiner Vergleichsfunktion fehlt, ist eine Schleife, die Zeichen für Zeichen durch den String marschiert, bis sie sich an einer Stelle unterscheiden oder einer der beiden Strings zu Ende ist.
ja das dachte ich mir auch schon, aber ich hab da nicht mal einen kleinen schimmer wie ich das realisieren kann :-(, leider.

Hmm. Also das gewisse Etwas, das "Feeling" des Programmierers, scheint dir zu fehlen? Ist nicht abwertend gemeint. Jeder hat seine Stärken und Schwächen woanders.

ich weiss das es hier nicht gern gelesen wird, aber hast du oder ein anderer mir eine code-schnippsel mit dem ihr mir auf die sprünge helfen könnt, wär darüber sehr dankbar.

Also: Du hast zwei Strings $a und $b.
 * Lasse eine Schleife von 0 bis strlen($a)-1 laufen und ersetze alle
   Zeichen in $a, falls zutreffend (Umlaut-Konvertierung).
 * Lasse eine Schleife von 0 bis strlen($b)-1 laufen und ersetze alle
   Zeichen in $b, falls zutreffend (Umlaut-Konvertierung).
 * Und jetzt kannst du die normalen String-Vergleichsfunktionen nutzen:
   Gib 0 zurück, wenn $a==$b
   Gib +1 zurück, wenn $a>$b
   Gib -1 zurück, wenn $a<$b

Umsetzen kannst du das nun bestimmt selbst. :-)
So long,
 Martin

--
Wenn du beim Kochen etwas heißes Wasser übrig hast, friere es ein.
Heißes Wasser kann man immer gebrauchen.