介绍
利用php怎么对数组的拼音进行排序?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强>一、问题:强>
给定数组要求实现按照其汉字首字母排序:
pinyin 美元;=,阵列( 数组才能(& # 39;名字# 39;=祝辞& # 39;梁朝伟& # 39;,& # 39;年龄# 39;=祝辞23), 数组才能(& # 39;名字# 39;=祝辞& # 39;安迪# 39;,& # 39;年龄# 39;=祝辞24), 数组才能(& # 39;名字# 39;=祝辞& # 39;黎明& # 39;,& # 39;年龄# 39;=祝辞19), 数组才能(& # 39;名字# 39;=祝辞& # 39;郭富城& # 39;,& # 39;年龄# 39;=祝辞20) );
<强>二,解决方法:强>
& lt; php ?/* ,* Created 提醒;2017-5-3 *大敌;作者:www.jb51.net ,* ,*/美元,function zhcnToPinyin (str)//汉字转拼音函数 { 如果才能(空(str)美元){return & # 39; & # 39;;} 美元才能fchar=奥德($ str {0}); 如果才能(fchar>美元;=奥德(& # 39;一个# 39;),和fchar<美元;=奥德(& # 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=美元才能奥德(${0})* 256 +奥德($ {1})-65536; 如果才能(asc>美元=-20319,,asc<美元=-20284),return & # 39;一个# 39;; 如果才能(asc>美元=-20283,,asc<美元=-19776),return & # 39; b # 39;; 如果才能(asc>美元=-19775,,asc<美元=-19219),return & # 39; c # 39;; 如果才能(asc>美元=-19218,,asc<美元=-18711),return & # 39; d # 39;; 如果才能(asc>美元=-18710,,asc<美元=-18527),return & # 39; e # 39;; 如果才能(asc>美元=-18526,,asc<美元=-18240),return & # 39; f # 39;; 如果才能(asc>美元=-18239,,asc<美元=-17923),return & # 39;舌鳎# 39;; 如果才能(asc>美元=-17922,,asc<美元=-17418),return & # 39; h # 39;; 如果才能(asc>美元=-17417,,asc<美元=-16475),return & # 39;强生# 39;; 如果才能(asc>美元=-16474,,asc<美元=-16213),return & # 39; k # 39;; 如果才能(asc>美元=-16212,,asc<美元=-15641),return & # 39; l # 39;; 如果才能(asc>美元=-15640,,asc<美元=-15166),return & # 39;猴# 39;; 如果才能(asc>美元=-15165,,asc<美元=-14923),return & # 39; n # 39;; 如果才能(asc>美元=-14922,,asc<美元=-14915),return & # 39; o # 39;; 如果才能(asc>美元=-14914,,asc<美元=-14631),return & # 39; p # 39;; 如果才能(asc>美元=-14630,,asc<美元=-14150),return & # 39;提问# 39;; 如果才能(asc>美元=-14149,,asc<美元=-14091),return & # 39; " # 39;; 如果才能(asc>美元=-14090,,asc<美元=-13319),return & # 39; & # 39;; 如果才能(asc>美元=-13318,,asc<美元=-12839),return & # 39; t # 39;; 如果才能(asc>美元=-12838,,asc<美元=-12557),return & # 39; w # 39;; 如果才能(asc>美元=-12556,,asc<美元=-11848),return & # 39; x # 39;; 如果才能(asc>美元=-11847,,asc<美元=-11056),return & # 39; y # 39;; 如果才能(asc>美元=-11055,,asc<美元=-10247),return & # 39; z # 39;; return 才能;零; } $ pinyin =,阵列( 数组才能(& # 39;名字# 39;=祝辞& # 39;梁朝伟& # 39;,& # 39;年龄# 39;=祝辞23), 数组才能(& # 39;名字# 39;=祝辞& # 39;安迪# 39;,& # 39;年龄# 39;=祝辞24), 数组才能(& # 39;名字# 39;=祝辞& # 39;黎明& # 39;,& # 39;年龄# 39;=祝辞19), 数组才能(& # 39;名字# 39;=祝辞& # 39;郭富城& # 39;,& # 39;年龄# 39;=祝辞20) ); 数组$ sort =, (); foreach ($ pinyin as  key 美元;=祝辞,$ item), { py 美元;才能=,zhcnToPinyin ($ item[& # 39;名字# 39;]); 美元才能拼音[$ key][& # 39;拼音# 39;],=,py美元; 美元才能排序[],=,py美元; } 对SORT_ASC,排序,美元,美元拼音); 美元var_dump(拼音); 祝辞;
运行结果如下:
阵列(4),{ ,[0]=比; ,数组(3){ (“name")才能=比; 字符串(4),才能“andy" (“age")才能=比; int(24)才能 (“pinyin")才能=比; 字符串(1),才能“A" ,} ,[1]=比; ,数组(3){ (“name")才能=比; 字符串(6),才能“郭富城“ (“age")才能=比; int(20)才能 (“pinyin")才能=比; 字符串(1),才能“G" ,} ,[2]=比; ,数组(3){ (“name")才能=比; 字符串(4),才能“黎明“; (“age")才能=比; int(19)才能 (“pinyin")才能=比; 字符串(1),才能“L" ,} ,[3]=比; ,数组(3){ (“name")才能=比; 字符串(6),才能“梁朝伟, (“age")才能=比; int(23)才能 (“pinyin")才能=比; 字符串(1),才能“L" ,} }利用php怎么对数组的拼音进行排序