在开发中,根据具体的需求,有时候需要将搜索出的结果进行排序,如果是int类型的直接desc即可,但是遇到汉字的时候,该怎么排序呢,其实比较简单.
大致思路:一般开发用到的编码格式都是utf8,不支持按照拼音排序,会出现乱码等情况,需要排序的话,转换为gbk,按照中国人的思路(按照拼音字母排序)就可排序
数据库
PHP逻辑处理代码
返回前端的数据
如上情况
哎->a;
这->z;
好->h;
想要的次序应该是
哎呀呀 , 好好, 这么好
只需要在PHP中加上一下内容
//此时$res是一个按照id排序的数组,将之转换为一个按照school_name汉字排序的数组
//数组中的汉字utf-8 -> gbk
$res = eval('return '.mb_convert_encoding(var_export($res,true), "gbk","utf-8").";");
//对数组按照汉字的拼音进行排序
sort($res);
//将数组中的汉字转换成utf-8编码
$res = eval('return '.mb_convert_encoding(var_export($res,true), "utf-8", "gbk").";");
然后,返回的查询结果如下
成功返回想要的结果