在一些生产环境中要使用到中文拼音排序,比如通讯录排序等…
业务逻辑:
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); //重新排序
深圳 · 龙岗 · 大运软件小镇22栋201
电话:400 182 8580
邮箱:szhulian@qq.com