在一些生产环境中要使用到中文拼音排序,比如通讯录排序等…
业务逻辑:
1. 获取 中文首字母
2. 字母排序
一、 普通的中文转拼音代码如下
if (preg_match("/[\x7f-\xff]/", "中文")) { //判断字符串中是否有中文
//此处校验中文是因为getFirstCharter() 识别非中文报错
$letter_name = getFirstCharter("中文");
}
缺点: 仅能识别一些常用的中文
二、 使用到了overtrue/pinyin拓展
1. 转化方式
```
PINYIN_TONE #带音调的转化方式
PINYIN_KEEP_NUMBER #保留数字的转化方式
PINYIN_KEEP_ENGLISH#保留英文的转化方式
PINYIN_KEEP_PUNCTUATION#保留标点的转化方式
PINYIN_UMLAUT_V#使用 v 代替 yu的转化方式
```
2. 汉字转成拼音数组
优点:可识别度更广更全
```
$pinyin = new Pinyin();
$pinyin->convert('汉字转拼音', PINYIN_TONE); //[ 'hàn', 'zì', 'zhuǎn', 'pīn', 'yīn']
$pinyin->permalink('汉字转拼音'); //ce-shi-han-zi-zhuan-pin-yin
$pinyin->abbr('汉字转拼音', '-'); //h-z-z-p-y
$pinyin->sentence('汉字转拼音,这是测试!!!'); //han zi zhuan pin yin, zhe shi ce shi!!!=
```
3. strtoupper() 字母转大写
4. array_multisort($list, SORT_ASC, $list); //重新排序
本文均为荣益互联摘自权威资料,书籍,文章,或来自网络,如有版权纠纷或违规问题,请联系我们删除。我们欢迎您的分享,谢绝直接抄袭复制。感谢…