首页 > 后端开发 > php教程 > 关于中文排序的问题

关于中文排序的问题

WBOY
发布: 2016-08-04 09:21:55
原创
1105 人浏览过

我的数据源是utf8格式的 但是我要对这些数据做排序,由于是中文,我将其转换为gbk或gbk2312,但是排序出了部分不准确的问题

我是用php的array_multi_sort方法排序的

排序结果中会出现这样的问题

关于中文排序的问题

黑框里这些数据很明显按照拼音降序排列不正确 但是后面的数据却都是合适的,不知道这是什么原因?还是说gbk的库不够全?

补充一段测试代码

<code>$array = array("鹭","昊","瀚","骅","众","怡","萃","重","恺","鑫");
foreach($array as $val){
    $newArr[] = iconv('utf8','GBK',$val);
}

array_multisort($newArr,SORT_DESC,SORT_FLAG_CASE );
echo "<pre class="brush:php;toolbar:false">";
print_r($newArr);
die;
登录后复制
登录后复制

回复内容:

我的数据源是utf8格式的 但是我要对这些数据做排序,由于是中文,我将其转换为gbk或gbk2312,但是排序出了部分不准确的问题

我是用php的array_multi_sort方法排序的

排序结果中会出现这样的问题

关于中文排序的问题

黑框里这些数据很明显按照拼音降序排列不正确 但是后面的数据却都是合适的,不知道这是什么原因?还是说gbk的库不够全?

补充一段测试代码

<code>$array = array("鹭","昊","瀚","骅","众","怡","萃","重","恺","鑫");
foreach($array as $val){
    $newArr[] = iconv('utf8','GBK',$val);
}

array_multisort($newArr,SORT_DESC,SORT_FLAG_CASE );
echo "<pre class="brush:php;toolbar:false">";
print_r($newArr);
die;
登录后复制
登录后复制

若按照汉字的拼音排序结果不一定准确, 也可以按照汉字的ascii排序, 但程序复杂度上升, 若你的分类数据是从数据库读出来的, 可以试试在数据库中添加排序字段

相关标签:
php
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板