Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Entwicklungstipps (7) – Codebeispiel zum Ermitteln des ersten Pinyin-Buchstabens chinesischer Schriftzeichen

PHP-Entwicklungstipps (7) – Codebeispiel zum Ermitteln des ersten Pinyin-Buchstabens chinesischer Schriftzeichen

黄舟
黄舟Original
2017-03-10 18:49:001469Durchsuche

Manchmal müssen wir während unseres Projektentwicklungsprozesses einen bestimmten Datensatz nach Chinesisch sortieren. Dazu müssen wir zuerst die Anfangsbuchstaben dieser chinesischen Schriftzeichen ermitteln und sie dann sortieren. Dies ist die allgemeine Methode zur Lösung solcher Probleme in der Zukunft. Da der Autor zu diesem Zeitpunkt relativ wenig Erfahrung hatte, suchte ich nach vielen Methoden, um dieses Problem zu lösen. Schließlich fand ich diese Codefolge im Internet Ich habe den ersten Brief erhalten und bin dann gerade dabei, zu filmen.

Der Code lautet wie folgt:

<?php  
  
/** 
 * ======================================= 
 * Created by Zhihua_W. 
 * Author: Zhihua_W 
 * Date: 2016/12/6 0007 
 * Time: 上午 8:46 
 * Project: PHP开发小技巧 
 * Power: 获取中文字符拼音首字母 
 * ======================================= 
 */  
  
/** 
 * 获取中文字符拼音首字母 
 * @param $str 中文字符 
 * @return null|string 
 */  
function getFirstCharter($str)  
{  
    if (empty($str)) {  
        return &#39;&#39;;  
    }  
    $fchar = ord($str{0});  
    if ($fchar >= ord(&#39;A&#39;) && $fchar <= ord(&#39;z&#39;)) return strtoupper($str{0});  
    $s1 = iconv(&#39;UTF-8&#39;, &#39;gb2312&#39;, $str);  
    $s2 = iconv(&#39;gb2312&#39;, &#39;UTF-8&#39;, $s1);  
    $s = $s2 == $str ? $s1 : $str;  
    $asc = ord($s{0}) * 256 + ord($s{1}) - 65536;  
    if ($asc >= -20319 && $asc <= -20284) return &#39;A&#39;;  
    if ($asc >= -20283 && $asc <= -19776) return &#39;B&#39;;  
    if ($asc >= -19775 && $asc <= -19219) return &#39;C&#39;;  
    if ($asc >= -19218 && $asc <= -18711) return &#39;D&#39;;  
    if ($asc >= -18710 && $asc <= -18527) return &#39;E&#39;;  
    if ($asc >= -18526 && $asc <= -18240) return &#39;F&#39;;  
    if ($asc >= -18239 && $asc <= -17923) return &#39;G&#39;;  
    if ($asc >= -17922 && $asc <= -17418) return &#39;H&#39;;  
    if ($asc >= -17417 && $asc <= -16475) return &#39;J&#39;;  
    if ($asc >= -16474 && $asc <= -16213) return &#39;K&#39;;  
    if ($asc >= -16212 && $asc <= -15641) return &#39;L&#39;;  
    if ($asc >= -15640 && $asc <= -15166) return &#39;M&#39;;  
    if ($asc >= -15165 && $asc <= -14923) return &#39;N&#39;;  
    if ($asc >= -14922 && $asc <= -14915) return &#39;O&#39;;  
    if ($asc >= -14914 && $asc <= -14631) return &#39;P&#39;;  
    if ($asc >= -14630 && $asc <= -14150) return &#39;Q&#39;;  
    if ($asc >= -14149 && $asc <= -14091) return &#39;R&#39;;  
    if ($asc >= -14090 && $asc <= -13319) return &#39;S&#39;;  
    if ($asc >= -13318 && $asc <= -12839) return &#39;T&#39;;  
    if ($asc >= -12838 && $asc <= -12557) return &#39;W&#39;;  
    if ($asc >= -12556 && $asc <= -11848) return &#39;X&#39;;  
    if ($asc >= -11847 && $asc <= -11056) return &#39;Y&#39;;  
    if ($asc >= -11055 && $asc <= -10247) return &#39;Z&#39;;  
    return null;  
}  
  
echo getFirstCharter(&#39;为&#39;);  
  
?>

Sie können den Test selbst durchführen, um spezifische Ergebnisse zu erhalten!


Das obige ist der detaillierte Inhalt vonPHP-Entwicklungstipps (7) – Codebeispiel zum Ermitteln des ersten Pinyin-Buchstabens chinesischer Schriftzeichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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