ChrisB: array sortieren Groß/Kleinschreibung Sonderzeichen

Beitrag lesen

Hi,

uksort($ausgabe, 'strnatcasecmp');

strnatcasecmp ist immer noch nciht die Funktion, die dir empfohlen wurde.

Was mache ich wenn ein Eintrag z.B. mit " beginnt also z.B. '"Der Brecher" Müller, Stefan' -> dieser Eintrag sollte unter D mit reinsortiert werden

Nun, das hat mit der Locale natürlich eher weniger zu tun.

Die Locale beeinhaltet einer Sprache innewohnende Sortier-/Vergleichsregelungen - also bspw., dass im Deutschen ä wie ae behandelt wird, oder im Schwedischen ü wie y.

Aber sowas wie "berücksichtigte ein führendes Anführungszeichen nicht" - das ist eine sehr spezielle Anforderung.

aber was ist mit Ø -> der sollte bei O mit reinkommen....

Entweder findest du eine Locale, die das alles abdeckt - oder du wirst dir doch eine eigene Vergleichsfunktion schreiben müssen.

Was man auch noch machen könnte, erst mal "übersetzen", als bspw. das Ø durch O ersetzen, (führende) Anführungszeichen entfernen, etc. [1] - und dann diese bearbeiteten Werte zum Sortieren nutzen. (Natürlich muss man diese dann parallel zu den Originalwerten ablegen, denn letztere sollen ja letztendlich nach wie vor ausgegeben werden.)

[1] Dafür könnten schon str_replace (mit Suchen- und Ersetzen-Arrays gefüttert) und trim ausreichen.

MfG ChrisB

--
Light travels faster than sound - that's why most people appear bright until you hear them speak.