Heim > Backend-Entwicklung > PHP-Problem > So sortieren Sie ein Array in PHP nach Pinyin

So sortieren Sie ein Array in PHP nach Pinyin

PHPz
Freigeben: 2023-04-18 09:55:58
Original
619 Leute haben es durchsucht

Bei der PHP-Programmierung müssen wir häufig Arrays sortieren. Normalerweise hat PHP Probleme beim Sortieren chinesischer Zeichenfolgen, da chinesische Zeichenfolgen nicht in alphabetischer Reihenfolge angeordnet sind. Daher müssen wir bei der Verarbeitung chinesischer Zeichenfolgen die Zeichenfolgen konvertieren, die chinesischen Zeichenfolgen in Pinyin konvertieren und sie dann sortieren. Wie sortiert PHP das Array also nach Pinyin? Lassen Sie uns es unten im Detail vorstellen.

  1. Vorbereitung:

In PHP können wir die Pinyin-Erweiterung verwenden, um chinesische Zeichenfolgen in Pinyin umzuwandeln. Zuerst müssen Sie die Pinyin-Erweiterung installieren. Sie können sie mit dem folgenden Befehl installieren:

pecl install pinyin
Nach dem Login kopieren

Nachdem die Installation abgeschlossen ist, fügen Sie den folgenden Inhalt zur php.ini-Datei hinzu:

extension=pinyin.so
Nach dem Login kopieren

Starten Sie dann den PHP-Dienst neu und Sie können Verwenden Sie die Pinyin-Erweiterung.

  1. Array-Sortierung:

Angenommen, wir haben ein Array, das mehrere chinesische Zeichenfolgen enthält. Jetzt müssen wir dieses Array nach der Pinyin-Reihenfolge der chinesischen Strings sortieren. Wir können die von PHP bereitgestellte Funktion usort verwenden, die zwei Parameter akzeptiert: ein sortiertes Array und eine sortierte Rückruffunktion.

Zuerst müssen wir eine Rückruffunktion schreiben, die zwei Parameter $a und $b akzeptiert, die die beiden Elemente darstellen, die verglichen werden müssen. Die Funktion muss einen ganzzahligen Wert zurückgeben, der die Größenbeziehung zwischen $a und $b darstellt. Gibt eine Ganzzahl größer als 0 zurück, wenn $a größer als $b ist; gibt eine Ganzzahl kleiner als 0 zurück, wenn $a kleiner als $b ist; gibt 0 zurück, wenn $a gleich $b ist. Hier ist ein Beispiel:

function cmp($a, $b)
{
    $py_a = pinyin($a); // 转换成拼音
    $py_b = pinyin($b);
    return strcmp($py_a, $py_b); // 比较拼音
}
Nach dem Login kopieren

Im obigen Code verwenden wir zunächst die Pinyin-Funktion, um die chinesische Zeichenfolge in Pinyin umzuwandeln, und verwenden dann die Funktion strcmp, um das Größenverhältnis von Pinyin zu vergleichen.

Als nächstes können wir die Funktion usort verwenden, um das Array zu sortieren, wie unten gezeigt:

$array = array("张三", "李四", "王五", "赵六");
usort($array, "cmp"); // 按拼音排序
print_r($array); // 输出结果
Nach dem Login kopieren

Im obigen Code definieren wir zunächst ein Array $array, das mehrere chinesische Zeichenfolgen enthält, und verwenden dann die Funktion usort, um das Array zu sortieren. Die Sortier-Callback-Funktion ist die cmp-Funktion, die wir oben definiert haben. Abschließend verwenden wir die Funktion print_r, um die sortierten Ergebnisse auszugeben.

  1. Zusammenfassung

Durch die Konvertierung chinesischer Zeichenfolgen in Pinyin können wir das Array einfach sortieren. PHP stellt die Pinyin-Erweiterung zur Verfügung, um chinesische Strings in Pinyin zu konvertieren. Durch die Verwendung der Callback-Funktion in Verbindung mit der usort-Funktion kann das Array nach Pinyin sortiert werden. Dies hat einen großen praktischen Wert bei der PHP-Programmentwicklung.

Das obige ist der detaillierte Inhalt vonSo sortieren Sie ein Array in PHP nach Pinyin. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage