最近のプロジェクトには、中国語と英語 (アラビア数字 0 ~ 9 を含む) の膨大な語彙データベースから各単語の最初の文字を抽出するという要件があります。
ガンニクス——>G
自由—>Z
2B——>E
Silly X——>S
コードをコピーします コードは次のとおりです:
private function getfirstchar($s0){
$s=iconv('UTF-8','gb2312', $s0);
if (ord($s0)>128) { //汉字开头
$asc =ord($s{0})*256+ord($s{1})-65536;
if($asc>=-20319 and $asc<=-20284)return "A";
if($asc> ;=-20283 および $asc<=-19776)return "B";
if($asc>=-19775 and $asc<=-19219)return "C";
if($asc>=-19218 and $ asc<=-18711)return "D";
if($asc>=-18710 and $asc<=-18527)return "E";
if($asc>=-18526 および $asc<=-18240)return "F";
if($asc>=-18239 and $asc<=-17923)return "G";
if($asc>=-17922 および $asc<=-17418)return "I";
if($asc>=-17417 および $asc<=-16475)return "J";
if($asc>=-16474 および $asc<=-16213)return "K";
if($asc>=-16212 および $asc<=-15641)return "L";
if($asc>=-15640 および $asc<=-15166)return "M";
if($asc>=-15165 および $asc<=-14923)return "N";
if($asc>=-14922 および $asc<=-14915)return "O";
if($asc>=-14914 および $asc<=-14631)return "P";
if($asc>=-14630 and $asc<=-14150)return "Q";
if($asc>=-14149 および $asc<=-14091)return "R";
if($asc>=-14090 および $asc<=-13319)return "S";
if($asc>=-13318 および $asc<=-12839)return "T";
if($asc>=-12838 および $asc<=-12557)return "W";
if($asc>=-12556 および $asc<=-11848)return "X";
if($asc>=-11847 および $asc<=-11056)return "Y";
if($asc>=-11055 and $asc<=-10247)return "Z";
}else if(ord($s)>=48 and ord($s)<=57){ //数字で始めます
switch(iconv_substr($s,0,1,'utf-8'))
ケース1:「Y」を返します。CASE2:case 6:return "l";($ s)&lt; = 122) ; // 中国語と英語の混合単語は上記の状況には適していないため、最初の文字を直接抽出してください
、G は抽出されません
最終的な効果は写真の通りです:
http://www.bkjia.com/PHPjc/326814.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/326814.html
技術記事
最近のプロジェクトでは、中国語と英語の膨大な語彙データベース (アラビア数字 0 ~ 9 を含む) から各単語の最初の文字を抽出する必要があります: gannicus - G 自由 - Z 2B - E 愚か...