在护理系统的项目中有一个根据姓名排序功能,是将医护人员姓名根据姓转换为首字母,然后将首字母相同的归为一类进行快速,可以实现快速查找人员。
首先是将姓名的字符串拆分,只取第一个汉字,使用mb_substr函数拆分字符串然后只取第一个,例如:
mb_substr('张三', 0, 1, 'utf-8') //结果返回 张
然后设置一个多音字数组,配置好多音的姓以及想得到的首字母。
然后先判断该数组中是否存在,如果存在就直接返回内容
然后将汉字转为ASCII码值,使用ord方法,因为单汉字也是由字节组成,所以需要取第一个字节的ord乘以256然后加上第二个字节的ord减去65536
然后得到的结果有一个范围对照表
最后就可以根据判断 得到需要的结果了