PHP-Array-Sortierung und Kompatibilität mit persischen Alphabeten

9

Ich versuche, ein Array zuerst nach seinen Werten und dann nach seinen Schlüsseln zu sortieren, aber PHP ist nicht gut mit persischen Zeichen.
Persische Alphabete ähneln arabischen Alphabeten mit Ausnahme einiger zusätzlicher Zeichen wie "گ چ پ ژ ک" und PHP ist gut darin, arabische Buchstaben in persischen Alphabeten zu sortieren, aber der Rest ist nicht in der richtigen Reihenfolge.

Zum Beispiel

%Vor%

erstellt ein Array ( $arr ), das alle persischen Alphabete in alphabetischer Reihenfolge enthält. und wenn ich es mische und asort -Funktion wie folgt benutze:

%Vor%

Es wird wie folgt enden:

%Vor%

was falsch ist!

Der 24. Artikel sollte nach dem 1., der 23. nach dem 20. usw. sein.

Wie kann ich eine Funktion schreiben, die etwas ähnlich PHP-eigenen Sortierfunktionen macht? Oder vielleicht gibt es eine Möglichkeit, PHP-Funktionen für persische Zeichen arbeiten zu lassen?

    
Farid Rn 01.04.2014, 20:46
quelle

3 Antworten

3

Ich habe die folgende Funktion geschrieben, um den UTF-8-Codepunkt für ein beliebiges Zeichen zurückzugeben:

%Vor%

Lasst uns nun die UTF-8-Codepunkte der Zeichen in Ihrem Array herausfinden:

%Vor%

Die Ausgabe ist:

%Vor%

Es zeigt deutlich, dass die Zeichen nicht in der richtigen Reihenfolge sind und sortiert werden müssen. Ich kenne Persisch nicht, daher kann ich nicht feststellen, ob ein Fehler im persischen UTF-8-Alphabet vorliegt. Aber ich kann nur sagen, dass PHP seine Arbeit richtig macht.

    
Sharanya Dutta 21.05.2014 03:15
quelle
0

Ich erstelle eine benutzerdefinierte JavaScript-Sortierfunktion für persische Arrays:

%Vor%

Online prüfen

Ich hoffe, dass diese Funktion Ihnen hilft

    
Iman Bahrampour 08.10.2017 20:45
quelle
0

Nun, um die verfügbaren Locales zu erhalten, die Sie verwenden können

%Vor%

Ich hatte sowohl 'fa' als auch 'fa_IR' verfügbar, aber 'fa_IR' gab immer noch false zurück, also benutzte ich 'fa' , um es zu testen:

%Vor%

aber das war noch nicht in der richtigen Reihenfolge für mich sortieren ...

Nachdem ich mehr gegoogelt hatte, nutzte ich die Lösung, die mir schließlich beim Sortieren von Unicode-Persisch-Alphabeten geholfen hat Collator Klasse:

%Vor%

Ich weiß, dass die Frage alt ist, aber das könnte den neuen Leuten immer noch helfen, hier nach einer Antwort auf diese Frage zu suchen.

    
Saeed 16.10.2017 07:51
quelle

Tags und Links