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 之 没有mysql支持时的替代方案
Oct 09 PHP
php.ini 中文版
Oct 28 PHP
新手学PHP之数据库操作详解及乱码解决!
Jan 02 PHP
php生成文件
Jan 15 PHP
用php解析html的实现代码
Aug 08 PHP
php在数组中查找指定值的方法
Mar 17 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
Apr 22 PHP
php生成图片验证码的方法
Apr 15 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
Mar 10 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
Apr 10 PHP
使用laravel指定日志文件记录任意日志
Oct 17 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
PHP4(windows版本)中的COM函数
2006/10/09 PHP
延长phpmyadmin登录时间的方法
2011/02/06 PHP
PHP编码转换
2012/11/05 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
thinkphp中U方法按路由规则生成url的方法
2018/03/12 PHP
php实现断点续传大文件示例代码
2020/06/19 PHP
JavaScript DOM学习第一章 W3C DOM简介
2010/02/19 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
首页图片漂浮效果示例代码
2014/06/05 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
js评分组件使用详解
2017/06/06 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
[38:21]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS LGD-CDEC
2014/05/22 DOTA
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
在Python中使用成员运算符的示例
2015/05/13 Python
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
Python2与Python3的区别实例分析
2019/04/11 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
python使用matplotlib:subplot绘制多个子图的示例
2020/09/24 Python
Python 串口通信的实现
2020/09/29 Python
用python对oracle进行简单性能测试
2020/12/05 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
汽修专业学生自我鉴定
2013/11/16 职场文书
家长对小学生的评语
2014/01/28 职场文书
学校端午节活动总结
2015/02/11 职场文书
求职自荐信怎么写
2015/03/04 职场文书