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高手?学会“懒惰”的编程
Dec 05 PHP
php反弹shell实现代码
Apr 22 PHP
PHP获取MySql新增记录ID值的3种方法
Jun 24 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
Jan 04 PHP
详解PHP执行定时任务的实现思路
Dec 21 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 PHP
php实现按天数、星期、月份查询的搜索框
May 02 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
Jun 30 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
PHP基于openssl实现的非对称加密操作示例
Jan 11 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
Apr 27 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创建动态图像
2006/10/09 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
js禁止回车提交表单的示例代码
2013/12/23 Javascript
javascript验证身份证号
2015/03/03 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
AngularJS中一般函数参数传递用法分析
2016/11/22 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
vue搜索和vue模糊搜索代码实例
2019/05/07 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
jquery实现弹窗(系统提示框)效果
2019/12/10 jQuery
小程序实现列表展开收起效果
2020/07/29 Javascript
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
Flask项目中实现短信验证码和邮箱验证码功能
2019/12/05 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
Python面向对象之继承原理与用法案例分析
2019/12/31 Python
Python原始套接字编程实例解析
2020/01/29 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
大学毕业生通用自我评价
2014/01/05 职场文书
五一家具促销方案
2014/01/10 职场文书
电脑专业个人求职信范文
2014/02/04 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
担保书怎么写 ?
2019/04/22 职场文书
NodeJs内存占用过高的排查实战记录
2021/05/10 NodeJs
基于flask实现五子棋小游戏
2021/05/25 Python
Java Spring Boot 正确读取配置文件中的属性的值
2022/04/20 Java/Android