类核心代码:

<?phpnamespace mobilemodels;use Yii;use yiiaseModel;/** * 汉字转拼音 * @property integer  */class SpellModel extends Model{  /**    * 拼音字符转换图    * @var array    */   private static $_aMaps = array(     "a"=>-20319,"ai"=>-20317,"an"=>-20304,"ang"=>-20295,"ao"=>-20292,     "ba"=>-20283,"bai"=>-20265,"ban"=>-20257,"bang"=>-20242,"bao"=>-20230,"bei"=>-20051,"ben"=>-20036,"beng"=>-20032,"bi"=>-20026,"bian"=>-20002,"biao"=>-19990,"bie"=>-19986,"bin"=>-19982,"bing"=>-19976,"bo"=>-19805,"bu"=>-19784,     "ca"=>-19775,"cai"=>-19774,"can"=>-19763,"cang"=>-19756,"cao"=>-19751,"ce"=>-19746,"ceng"=>-19741,"cha"=>-19739,"chai"=>-19728,"chan"=>-19725,"chang"=>-19715,"chao"=>-19540,"che"=>-19531,"chen"=>-19525,"cheng"=>-19515,"chi"=>-19500,"chong"=>-19484,"chou"=>-19479,"chu"=>-19467,"chuai"=>-19289,"chuan"=>-19288,"chuang"=>-19281,"chui"=>-19275,"chun"=>-19270,"chuo"=>-19263,"ci"=>-19261,"cong"=>-19249,"cou"=>-19243,"cu"=>-19242,"cuan"=>-19238,"cui"=>-19235,"cun"=>-19227,"cuo"=>-19224,     "da"=>-19218,"dai"=>-19212,"dan"=>-19038,"dang"=>-19023,"dao"=>-19018,"de"=>-19006,"deng"=>-19003,"di"=>-18996,"dian"=>-18977,"diao"=>-18961,"die"=>-18952,"ding"=>-18783,"diu"=>-18774,"dong"=>-18773,"dou"=>-18763,"du"=>-18756,"duan"=>-18741,"dui"=>-18735,"dun"=>-18731,"duo"=>-18722,     "e"=>-18710,"en"=>-18697,"er"=>-18696,     "fa"=>-18526,"fan"=>-18518,"fang"=>-18501,"fei"=>-18490,"fen"=>-18478,"feng"=>-18463,"fo"=>-18448,"fou"=>-18447,"fu"=>-18446,     "ga"=>-18239,"gai"=>-18237,"gan"=>-18231,"gang"=>-18220,"gao"=>-18211,"ge"=>-18201,"gei"=>-18184,"gen"=>-18183,"geng"=>-18181,"gong"=>-18012,"gou"=>-17997,"gu"=>-17988,"gua"=>-17970,"guai"=>-17964,"guan"=>-17961,"guang"=>-17950,"gui"=>-17947,"gun"=>-17931,"guo"=>-17928,     "ha"=>-17922,"hai"=>-17759,"han"=>-17752,"hang"=>-17733,"hao"=>-17730,"he"=>-17721,"hei"=>-17703,"hen"=>-17701,"heng"=>-17697,"hong"=>-17692,"hou"=>-17683,"hu"=>-17676,"hua"=>-17496,"huai"=>-17487,"huan"=>-17482,"huang"=>-17468,"hui"=>-17454,"hun"=>-17433,"huo"=>-17427,     "ji"=>-17417,"jia"=>-17202,"jian"=>-17185,"jiang"=>-16983,"jiao"=>-16970,"jie"=>-16942,"jin"=>-16915,"jing"=>-16733,"jiong"=>-16708,"jiu"=>-16706,"ju"=>-16689,"juan"=>-16664,"jue"=>-16657,"jun"=>-16647,     "ka"=>-16474,"kai"=>-16470,"kan"=>-16465,"kang"=>-16459,"kao"=>-16452,"ke"=>-16448,"ken"=>-16433,"keng"=>-16429,"kong"=>-16427,"kou"=>-16423,"ku"=>-16419,"kua"=>-16412,"kuai"=>-16407,"kuan"=>-16403,"kuang"=>-16401,"kui"=>-16393,"kun"=>-16220,"kuo"=>-16216,     "la"=>-16212,"lai"=>-16205,"lan"=>-16202,"lang"=>-16187,"lao"=>-16180,"le"=>-16171,"lei"=>-16169,"leng"=>-16158,"li"=>-16155,"lia"=>-15959,"lian"=>-15958,"liang"=>-15944,"liao"=>-15933,"lie"=>-15920,"lin"=>-15915,"ling"=>-15903,"liu"=>-15889,"long"=>-15878,"lou"=>-15707,"lu"=>-15701,"lv"=>-15681,"luan"=>-15667,"lue"=>-15661,"lun"=>-15659,"luo"=>-15652,     "ma"=>-15640,"mai"=>-15631,"man"=>-15625,"mang"=>-15454,"mao"=>-15448,"me"=>-15436,"mei"=>-15435,"men"=>-15419,"meng"=>-15416,"mi"=>-15408,"mian"=>-15394,"miao"=>-15385,"mie"=>-15377,"min"=>-15375,"ming"=>-15369,"miu"=>-15363,"mo"=>-15362,"mou"=>-15183,"mu"=>-15180,     "na"=>-15165,"nai"=>-15158,"nan"=>-15153,"nang"=>-15150,"nao"=>-15149,"ne"=>-15144,"nei"=>-15143,"nen"=>-15141,"neng"=>-15140,"ni"=>-15139,"nian"=>-15128,"niang"=>-15121,"niao"=>-15119,"nie"=>-15117,"nin"=>-15110,"ning"=>-15109,"niu"=>-14941,"nong"=>-14937,"nu"=>-14933,"nv"=>-14930,"nuan"=>-14929,"nue"=>-14928,"nuo"=>-14926,     "o"=>-14922,"ou"=>-14921,     "pa"=>-14914,"pai"=>-14908,"pan"=>-14902,"pang"=>-14894,"pao"=>-14889,"pei"=>-14882,"pen"=>-14873,"peng"=>-14871,"pi"=>-14857,"pian"=>-14678,"piao"=>-14674,"pie"=>-14670,"pin"=>-14668,"ping"=>-14663,"po"=>-14654,"pu"=>-14645,     "qi"=>-14630,"qia"=>-14594,"qian"=>-14429,"qiang"=>-14407,"qiao"=>-14399,"qie"=>-14384,"qin"=>-14379,"qing"=>-14368,"qiong"=>-14355,"qiu"=>-14353,"qu"=>-14345,"quan"=>-14170,"que"=>-14159,"qun"=>-14151,     "ran"=>-14149,"rang"=>-14145,"rao"=>-14140,"re"=>-14137,"ren"=>-14135,"reng"=>-14125,"ri"=>-14123,"rong"=>-14122,"rou"=>-14112,"ru"=>-14109,"ruan"=>-14099,"rui"=>-14097,"run"=>-14094,"ruo"=>-14092,     "sa"=>-14090,"sai"=>-14087,"san"=>-14083,"sang"=>-13917,"sao"=>-13914,"se"=>-13910,"sen"=>-13907,"seng"=>-13906,"sha"=>-13905,"shai"=>-13896,"shan"=>-13894,"shang"=>-13878,"shao"=>-13870,"she"=>-13859,"shen"=>-13847,"sheng"=>-13831,"shi"=>-13658,"shou"=>-13611,"shu"=>-13601,"shua"=>-13406,"shuai"=>-13404,"shuan"=>-13400,"shuang"=>-13398,"shui"=>-13395,"shun"=>-13391,"shuo"=>-13387,"si"=>-13383,"song"=>-13367,"sou"=>-13359,"su"=>-13356,"suan"=>-13343,"sui"=>-13340,"sun"=>-13329,"suo"=>-13326,     "ta"=>-13318,"tai"=>-13147,"tan"=>-13138,"tang"=>-13120,"tao"=>-13107,"te"=>-13096,"teng"=>-13095,"ti"=>-13091,"tian"=>-13076,"tiao"=>-13068,"tie"=>-13063,"ting"=>-13060,"tong"=>-12888,"tou"=>-12875,"tu"=>-12871,"tuan"=>-12860,"tui"=>-12858,"tun"=>-12852,"tuo"=>-12849,     "wa"=>-12838,"wai"=>-12831,"wan"=>-12829,"wang"=>-12812,"wei"=>-12802,"wen"=>-12607,"weng"=>-12597,"wo"=>-12594,"wu"=>-12585,     "xi"=>-12556,"xia"=>-12359,"xian"=>-12346,"xiang"=>-12320,"xiao"=>-12300,"xie"=>-12120,"xin"=>-12099,"xing"=>-12089,"xiong"=>-12074,"xiu"=>-12067,"xu"=>-12058,"xuan"=>-12039,"xue"=>-11867,"xun"=>-11861,     "ya"=>-11847,"yan"=>-11831,"yang"=>-11798,"yao"=>-11781,"ye"=>-11604,"yi"=>-11589,"yin"=>-11536,"ying"=>-11358,"yo"=>-11340,"yong"=>-11339,"you"=>-11324,"yu"=>-11303,"yuan"=>-11097,"yue"=>-11077,"yun"=>-11067,     "za"=>-11055,"zai"=>-11052,"zan"=>-11045,"zang"=>-11041,"zao"=>-11038,"ze"=>-11024,"zei"=>-11020,"zen"=>-11019,"zeng"=>-11018,"zha"=>-11014,"zhai"=>-10838,"zhan"=>-10832,"zhang"=>-10815,"zhao"=>-10800,"zhe"=>-10790,"zhen"=>-10780,"zheng"=>-10764,"zhi"=>-10587,"zhong"=>-10544,"zhou"=>-10533,"zhu"=>-10519,"zhua"=>-10331,"zhuai"=>-10329,"zhuan"=>-10328,"zhuang"=>-10322,"zhui"=>-10315,"zhun"=>-10309,"zhuo"=>-10307,"zi"=>-10296,"zong"=>-10281,"zou"=>-10274,"zu"=>-10270,"zuan"=>-10262,"zui"=>-10260,"zun"=>-10256,"zuo"=>-10254   );   /**    * 将中文编码成拼音    * @param string $utf8Data utf8字符集数据    * @param string $sRetFormat 返回格式 [head:首字母|all:全拼音]    * @return string    */   public static function encode($utf8Data, $sRetFormat="head"){     $sGBK = iconv("UTF-8", "GBK", $utf8Data);     $aBuf = array();     for ($i=0, $iLoop=strlen($sGBK); $i<$iLoop; $i++) {       $iChr = ord($sGBK{$i});       if ($iChr>160)         $iChr = ($iChr<<8) + ord($sGBK{++$i}) - 65536;       if ("head" === $sRetFormat)         $aBuf[] = substr(self::zh2py($iChr),0,1);       else         $aBuf[] = self::zh2py($iChr);     }     if ("head" === $sRetFormat)       return implode("", $aBuf);     else       return implode(" ", $aBuf);   }   /**    * 中文转换到拼音(每次处理一个字符)    * @param number $iWORD 待处理字符双字节    * @return string 拼音    */   private static function zh2py($iWORD) {     if($iWORD>0 && $iWORD<160 ) {       return chr($iWORD);     } elseif ($iWORD<-20319||$iWORD>-10247) {       return "";     } else {       foreach (self::$_aMaps as $py => $code) {         if($code > $iWORD) break;         $result = $py;       }       return $result;     }   } }

使用示例:

// 选择城市  public function actionCity()  {    $parameters = "      "requestType": 0    ";    $PortData = Interfaces::Connections("city/addresslist", true, Interfaces::Montage($parameters));    $PortData = json_decode($PortData, true);    // 热门城市    $model["topList"] = isset($PortData["topList"]) ? $PortData["topList"]:[];    // 所有城市    $dataList = isset($PortData["topList"]) ? $PortData["dataList"]:[];    $model["cityList"] = [];    if(!empty($dataList)){      foreach ($dataList as $key => $value) {        $spell = mobilemodelsSpellModel::encode($value["name"]);        $spell = mb_substr($spell , 0 , 1);         if(!empty($spell)) $model["cityList"][$spell][] = $value;      }      ksort($model["cityList"]); //排序    }    return $this->render("city", [      "model" => $model,    ]);  }

效果图如下:

以上所述是小编给大家介绍的Yii2汉字转拼音类的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网页设计网站的支持!