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 相关文章推荐
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
Aug 19 PHP
PHP 身份验证方面的函数
Oct 11 PHP
php smarty函数扩展
Mar 15 PHP
PHP foreach循环使用详解与实例代码
May 08 PHP
PHP下escape解码函数的实现方法
Aug 08 PHP
解析thinkphp中的M()与D()方法的区别
Jun 22 PHP
php中的strpos使用示例
Feb 27 PHP
CodeIgniter视图使用注意事项
Jan 20 PHP
smarty自定义函数用法示例
May 20 PHP
php的laravel框架快速集成微信登录的方法
Dec 12 PHP
PHP使用xpath解析XML的方法详解
May 20 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 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教程孙仲岳主讲
2008/01/07 PHP
PHP 面向对象 PHP5 中的常量
2010/05/05 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
帝国cms常用标签汇总
2015/07/06 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
详解PHP归并排序的实现
2016/10/18 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
详解Python3中字符串中的数字提取方法
2017/01/14 Python
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
Python学习入门之区块链详解
2017/07/25 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
python pandas读取csv后,获取列标签的方法
2018/11/12 Python
python实现堆排序的实例讲解
2020/02/21 Python
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
值传递还是引用传递
2015/02/08 面试题
物理力学求职信
2014/02/18 职场文书
国培远程培训感言
2014/03/08 职场文书
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
2014最新自愿离婚协议书范本
2014/11/19 职场文书
唐山大地震的观后感
2015/06/05 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python
基于Android10渲染Surface的创建过程
2022/08/14 Java/Android