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面向对象全攻略 (八)重载新的方法
Sep 30 PHP
php smarty模版引擎中的缓存应用
Dec 02 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
Jun 24 PHP
php导出word格式数据的代码实例
Nov 25 PHP
php文件缓存类汇总
Nov 21 PHP
php把数组值转换成键的方法
Jul 13 PHP
Zend Framework教程之配置文件application.ini解析
Mar 10 PHP
PHP开发制作一个简单的活动日程表Calendar
Jun 20 PHP
php5.x禁用eval的操作方法
Oct 19 PHP
PHP设计模式之单例模式定义与用法分析
Mar 26 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 PHP
Laravel开启跨域请求的方法
Oct 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将字符串转换成16进制的方法
2015/03/17 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
jQuery1.6 使用方法一
2011/11/23 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
innerHTML中标签可以换行的方法汇总
2015/08/14 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
bootstrap datetimepicker2.3.11时间插件使用
2016/11/19 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
js匿名函数使用&传参(实例)
2017/09/08 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
对于Python的Django框架部署的一些建议
2015/04/09 Python
Python实现基于权重的随机数2种方法
2015/04/28 Python
Python通过future处理并发问题
2017/10/17 Python
详解Python里使用正则表达式的ASCII模式
2017/11/02 Python
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
使用HTML5 Geolocation实现一个距离追踪器
2018/04/09 HTML / CSS
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
简单英文演讲稿
2014/01/01 职场文书
预备党员入党思想汇报
2014/01/04 职场文书
情人节寄语大全
2014/04/11 职场文书
酒店管理求职信
2014/06/09 职场文书
单位在职证明书
2014/09/11 职场文书
四风问题对照检查材料
2014/09/22 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
门市房租房协议书
2014/12/04 职场文书
元旦主持词开场白
2015/05/29 职场文书
实习单位鉴定意见
2015/06/04 职场文书
品德与社会教学反思
2016/02/24 职场文书
Java Dubbo框架知识点梳理
2021/06/26 Java/Android