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 相关文章推荐
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
Oct 09 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
Jun 21 PHP
php自定义错误处理用法实例
Mar 20 PHP
php获取json数据所有的节点路径
May 17 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
基于CI框架的微信网页授权库示例
Nov 25 PHP
php文件上传 你真的掌握了吗
Nov 28 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
PHP模型Model类封装数据库操作示例
Mar 14 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
Aug 05 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 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 获取远程网页内容的函数
2009/09/08 PHP
php中time()和mktime()方法的区别
2013/09/28 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
PHP获取表单所有复选框的值的方法
2014/08/28 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
javascript 函数式编程
2007/08/16 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
将List对象列表转换成JSON格式的类实现方法
2016/07/04 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
Vue实现购物车详情页面的方法
2019/08/20 Javascript
jQuery实现评论模块
2020/08/19 jQuery
python的迭代器与生成器实例详解
2014/07/16 Python
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
2017/08/18 Python
Python返回数组/List长度的实例
2018/06/23 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
详解python statistics模块及函数用法
2019/10/27 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
python用什么编辑器进行项目开发
2020/06/17 Python
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
入党自我鉴定范文
2013/10/04 职场文书
酒店服务与管理毕业生求职信
2013/11/02 职场文书
《广玉兰》教学反思
2014/04/14 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书