Heim >Backend-Entwicklung >PHP-Tutorial >Fragen zur chinesischen Sortierung

Fragen zur chinesischen Sortierung

WBOY
WBOYOriginal
2016-08-04 09:21:551093Durchsuche

Meine Datenquelle liegt im utf8-Format vor, aber ich muss die Daten sortieren. Da es sich um chinesische Daten handelt, habe ich sie in gbk oder gbk2312 konvertiert, aber bei der Sortierung sind einige Ungenauigkeiten aufgetreten

Ich habe mit der array_multi_sort-Methode von PHP sortiert

Ein solches Problem tritt bei den Sortierergebnissen auf

Fragen zur chinesischen Sortierung

Die Daten in der Blackbox sind offensichtlich falsch in absteigender Pinyin-Reihenfolge angeordnet, aber die nachfolgenden Daten sind alle angemessen. Ich kenne den Grund dafür nicht. Oder ist die GBK-Bibliothek nicht vollständig genug?

Fügen Sie einen Testcode hinzu

<code>$array = array("鹭","昊","瀚","骅","众","怡","萃","重","恺","鑫");
foreach($array as $val){
    $newArr[] = iconv('utf8','GBK',$val);
}

array_multisort($newArr,SORT_DESC,SORT_FLAG_CASE );
echo "<pre class="brush:php;toolbar:false">";
print_r($newArr);
die;</code>

Antwortinhalt:

Meine Datenquelle liegt im utf8-Format vor, aber ich muss die Daten sortieren. Da es sich um chinesische Daten handelt, habe ich sie in gbk oder gbk2312 konvertiert, aber bei der Sortierung sind einige Ungenauigkeiten aufgetreten

Ich habe mit der array_multi_sort-Methode von PHP sortiert

Ein solches Problem tritt bei den Sortierergebnissen auf

Fragen zur chinesischen Sortierung

Die Daten in der schwarzen Box sind in absteigender Pinyin-Reihenfolge offensichtlich falsch, aber die folgenden Daten sind alle angemessen. Ich kenne den Grund dafür nicht? Oder ist die GBK-Bibliothek nicht vollständig genug?

Fügen Sie einen Testcode hinzu

<code>$array = array("鹭","昊","瀚","骅","众","怡","萃","重","恺","鑫");
foreach($array as $val){
    $newArr[] = iconv('utf8','GBK',$val);
}

array_multisort($newArr,SORT_DESC,SORT_FLAG_CASE );
echo "<pre class="brush:php;toolbar:false">";
print_r($newArr);
die;</code>

Wenn das Sortierergebnis nach dem Pinyin der chinesischen Schriftzeichen möglicherweise nicht genau ist, können Sie auch nach den chinesischen Schriftzeichen sortieren ascii, aber die Komplexität des Programms erhöht sich, wenn Ihre Klassifizierungsdaten aus der Datenbank gelesen werden , können Sie versuchen, 排序字段

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn