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 相关文章推荐
mysql 字段类型说明
Apr 27 PHP
改变Apache端口等配置修改方法
Jun 05 PHP
PHP基础学习小结
Apr 17 PHP
对象失去焦点时自己动提交数据的实现代码
Nov 06 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
Apr 23 PHP
php发送post请求函数分享
Mar 06 PHP
WordPress中注册菜单与调用菜单的方法详解
Dec 18 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
Jan 05 PHP
PHP匿名函数和use子句用法实例
Mar 16 PHP
PHP类与对象后期静态绑定操作实例详解
Dec 20 PHP
Laravel 实现关系模型取出需要的字段
Oct 10 PHP
Yii框架getter与setter方法功能与用法分析
Oct 22 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中的reflection反射机制测试例子
2014/08/05 PHP
php文件下载处理方法分析
2015/04/22 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
PHP const定义常量及global定义全局常量实例解析
2020/05/28 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
JQuery select标签操作代码段
2010/05/16 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
2011/12/21 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
javascript基础知识讲解
2017/01/11 Javascript
Angular开发者指南之入门介绍
2017/03/05 Javascript
angular十大常见问题
2017/03/07 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
AngularJS 购物车全选/取消全选功能的实现方法
2017/08/14 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
python实现网页链接提取的方法分享
2014/02/25 Python
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
Tensorflow 模型转换 .pb convert to .lite实例
2020/02/12 Python
python3 配置logging日志类的操作
2020/04/08 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
Servlet的生命周期
2013/08/25 面试题
毕业横幅标语
2014/10/08 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技