为了账号安全,请及时绑定邮箱和手机立即绑定

php数组如何按拼音顺序排序

php数组如何按拼音顺序排序

沧海一幻觉 2019-04-21 20:39:40
php$pinyin=array(array('name'=>'梁朝伟','age'=>23),array('name'=>'andy','age'=>24),array('name'=>'黎明','age'=>19),array('name'=>'郭富城','age'=>20));name字段转为拼音然后按字母排序,如果第一个字母相同比较第二个,希望结果为php$pinyin=array(array('name'=>'andy','age'=>24),array('name'=>'郭富城','age'=>20)array('name'=>'梁朝伟','age'=>23),array('name'=>'黎明','age'=>19),);找到汉字转拼音库
查看完整描述

2 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

最近也碰到了要对汉字排序的问题,Collator效果还不错,参考ComparingUTF-8String
$name=[...];
(new\Collator('zh-CN'))->asort($name);
var_dump($name);
实际前后:
0=>'袁次阳'
1=>'段纪明'
2=>'朱公伟'
3=>'朱文渊'
4=>'朱符'
5=>'卢子干'
6=>'皇甫义真'
7=>'阎忠'
8=>'王子师'
9=>'士孙君荣'
10=>'荀慈明'
11=>'黄世英孙'
12=>'赵子柔'
13=>'蔡伯喈'
14=>'蔡文姬'
15=>'杨文先'
16=>'杨德祖'
17=>'吴匡'
18=>'马翁叔'
19=>'郑公业'
20=>'丁建阳'
21=>'尉韩暹'
22=>'胡才'
23=>'李乐'
24=>'杨奉'
25=>'张雅叔'
26=>'杨丑'
27=>'眭白兔'
28=>'蒋石'
29=>'吉本'
30=>'吉文然'
31=>'吉思然'
32=>'耿季行'
33=>'司直韦晃'
34=>'郎中张钧'
=>
13=>'蔡伯喈'
14=>'蔡文姬'
20=>'丁建阳'
1=>'段纪明'
32=>'耿季行'
22=>'胡才'
6=>'皇甫义真'
11=>'黄世英孙'
29=>'吉本'
31=>'吉思然'
30=>'吉文然'
28=>'蒋石'
34=>'郎中张钧'
23=>'李乐'
5=>'卢子干'
18=>'马翁叔'
9=>'士孙君荣'
33=>'司直韦晃'
27=>'眭白兔'
8=>'王子师'
21=>'尉韩暹'
17=>'吴匡'
10=>'荀慈明'
7=>'阎忠'
26=>'杨丑'
16=>'杨德祖'
24=>'杨奉'
15=>'杨文先'
0=>'袁次阳'
25=>'张雅叔'
12=>'赵子柔'
19=>'郑公业'
4=>'朱符'
2=>'朱公伟'
3=>'朱文渊'
                            
查看完整回答
反对 回复 2019-04-21
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

$sort=array();
foreach($pinyinas$key=>$item){
$py=zhcnToPinyin($item['name']);
$pinyin[$key]['pinyin']=$py;
$sort[]=$py;
}
array_multisort($sort,SORT_ASC,$pinyin);
functionzhcnToPinyin(){
//TODO汉字转拼音
}
                            
查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 326 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信