PHP中使用asort进行中文排序失效的问题处理


Posted in PHP onAugust 18, 2014

PHP中有非常方便的对数组进行重新排序的方法——asort,关于asort的使用方法可以看 这里 。但是asort对含有中文key的数组进行排序时,有时候并不是按照字母顺序。这主要是编码问题,如果编码为UTF-8,则不会按照字母顺序来排,解决方法是先转换成GBK编码,排序完再转回UTF-8.

示例:有一个数组$pass,结构类似为

Array
(
 [0] => stdClass Object
  (
   [username] => 张三
   [password] => DQ9uqQW2+UudOsZpQMnyvGG9L+RHZB6LRzBVDvAEL9uOBNf2zTWUnykhZFjhbzCH+LrSslRx9eSqU/n3gSLSUA==
  )

 [1] => stdClass Object
  (
   [username] => 李四
   [password] => 2P/3j50ibk1BYmjHL+7/tt0d6LuOQMN9m8klXJCZbcajQtH5749jFTtH17WxiBZ9p425b4KIV/Xdv/7Bu4pJAQ==
  )

 [2] => stdClass Object
  (
   [username] => 王五
   [password] => caq8lq0l6uxJPRx+sCBsBFUojSF+ox98gwO6c/AquXQ/y/aj/l/ziEGsXRSV+olcK7iKOJJ4IZZvX8DMPWZRRA==
  )

 [3] => stdClass Object
  (
   [username] => 赵六
   [password] => taXp4jX0vO3VoFLyANfGrSjzy76WQQHMnzYAN9CyI20uKxLFMScXrFR3P525eImy0pG5zk8btBJoS/RyMxzJGQ==
  )

)

使用下面的代码,将会把这个数组按照username的拼音排序。

foreach ($pass as $key) {
 $key->username = iconv('UTF-8', 'GBK', $key->username);
}
asort( $pass );
foreach ($pass as $key) {
 $key->username = iconv('GBK', 'UTF-8', $key->username);
}
PHP 相关文章推荐
php学习之function的用法
Jul 14 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
Jun 03 PHP
ThinkPHP实现ajax仿官网搜索功能实例
Dec 02 PHP
PHP获取数组长度或某个值出现次数的方法
Feb 11 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
May 30 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
PHP类相关知识点实例总结
Sep 28 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
php命令行写shell实例详解
Jul 19 PHP
Laravel手动返回错误码示例
Oct 22 PHP
php获取小程序码的实现代码(B类接口)
Jun 13 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
Aug 18 #PHP
PHP命名空间(namespace)的动态访问及使用技巧
Aug 18 #PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 #PHP
mac环境中使用brew安装php5.5.15
Aug 18 #PHP
PHP 正则表达式常用函数
Aug 17 #PHP
PHP常用正则表达式集锦
Aug 17 #PHP
学习php中的正则表达式
Aug 17 #PHP
You might like
PHP文件读写操作之文件读取方法详解
2011/01/13 PHP
php微信支付接口开发程序
2016/08/02 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
php数组遍历类与用法示例
2019/05/24 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
基于jQuery的动态表格插件
2011/03/28 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
JavaScript中exec函数用法实例分析
2015/06/08 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
js常见遍历操作小结
2019/06/06 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
基于python批量处理dat文件及科学计算方法详解
2018/05/08 Python
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
网络安全方面的面试题
2016/01/07 面试题
类的返射机制中的包及核心类
2016/09/12 面试题
教育专业个人求职信
2013/12/02 职场文书
优秀管理者获奖感言
2014/02/17 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
初中数学教学随笔
2015/08/15 职场文书
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers