利用php怎么对数组的拼音进行排序

  介绍

利用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怎么对数组的拼音进行排序