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+DBM的同学录程序(2)
Oct 09 PHP
PHP 5.3.0 安装分析心得
Aug 07 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
Nov 27 PHP
php多个字符串替换成同一个的解决方法
Jun 18 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
Smarty模板学习笔记之Smarty简介
May 20 PHP
php+mysql实现无限级分类
Nov 11 PHP
PHP观察者模式原理与简单实现方法示例
Aug 25 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
Oct 23 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
Oct 03 PHP
PHP7新增函数
Mar 09 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 chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
php实现购物车功能(下)
2016/01/05 PHP
phpStudy配置多站点多域名和多端口的方法
2017/09/01 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
理解JavaScript中的对象 推荐
2011/01/09 Javascript
JavaScript中把数字转换为字符串的程序代码
2013/06/19 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
JS高级运动实例分析
2016/12/20 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
python字符串替换示例
2014/04/24 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
Python控制台实现交互式环境执行
2020/06/09 Python
python使用建议技巧分享(三)
2020/08/18 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
《桂林山水》教学反思
2014/02/08 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
高中生操行评语大全
2014/04/25 职场文书
学校师德师风整改方案
2014/10/28 职场文书
大学生求职自荐信
2015/03/24 职场文书
亮剑观后感
2015/06/05 职场文书
python 经纬度求两点距离、三点面积操作
2021/06/03 Python