Markus: sort() - Die deutschen Umlaute (ÄÖÜ)???

Hallo,

problem: Ein Array wird mit sort() Sortiert. Die einzelnen Elemente enthalten aber (manchmal) ein "ö" (Das bei späterer Ausgabe ja ein ö wird). Diese Elemente (mit Umlauten am Anfang) werden aber nicht richtig sortiert. Die Sortierten Umlaute sind immer vor allen anderen buchstaben´(noch vor A).

An was liegt das???

Gruss
Markus

  1. Hallo,

    problem: Ein Array wird mit sort() Sortiert. Die einzelnen Elemente enthalten aber (manchmal) ein "ö" (Das bei späterer Ausgabe ja ein ö wird). Diese Elemente (mit Umlauten am Anfang) werden aber nicht richtig sortiert. Die Sortierten Umlaute sind immer vor allen anderen buchstaben´(noch vor A).

    An was liegt das???

    Woher soll PHP wissen das wenn am Anfang erin "&" steht das das irgendwann in HTML umgewandelt wird? Zum einen könnte man Elemente alle komplett übersetzen, z.B. mit http://php3.de/manual/de/function.preg-replace.php, da steht ein Beispiel, aber in den Kommentaren steht noch eien erheblich bessere Variante, mit get_html_translation_table() und array_flip()

    Am bestenb baust Du das einrfach nur in eine Userspezifische Sort-Funktion ein, mit http://php3.de/manual/de/function.usort.php, dann brauchst Du den array nichtmal zu verändern.

    Unter http://php3.de/manual/de/function.sort.php(Kommentare!!!) stehen noch einige Möglichkeiten, wie man per Flag Arrays nach bestimmten Vorgaben sortiert, so z.B.:

    If you want to sort an array according to your locale do the following:
    (de_DE as example)

    setlocale("LC_ALL","de_DE");
    usort($arraytobesorted, 'strcoll');

    in dieer Variante sollten auch "echte" Umlaute richtig sortiert werden, aber html-entitäten nicht!

    Wie gesat, schau mal da durch, lies die Kommentare, dann findest Du bestimmt genau das was Du brauchst!

    Grüße
    Andreas