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 相关文章推荐
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 PHP
判断是否为指定长度内字符串的php函数
Feb 16 PHP
PHP 函数学习简单小结
Jul 08 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
php实现文件下载功能的几个代码分享
May 10 PHP
PHP中使用TCPDF生成PDF文档实例
Jul 01 PHP
yii2.0实现验证用户名与邮箱功能
Dec 22 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
Nov 09 PHP
PHP-FPM运行状态的实时查看及监控详解
Nov 18 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 PHP
PHP+MySql实现一个简单的留言板
Jul 19 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
set_include_path在win和linux下的区别
2008/01/10 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
PHP 实现链式操作
2021/03/09 PHP
jquery remove方法应用详解
2012/11/22 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
jquery动态导航插件dynamicNav用法实例分析
2015/09/06 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
深入理解Vue router的部分高级用法
2018/08/15 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
微信小程序列表中item左滑删除功能
2018/11/07 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
Python实现截屏的函数
2015/07/25 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
在tensorflow中设置保存checkpoint的最大数量实例
2020/01/21 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
Python使用openpyxl复制整张sheet
2021/03/24 Python
依法行政工作汇报
2014/10/28 职场文书
2014年银行员工工作总结
2014/11/12 职场文书
董事会决议范本
2015/07/01 职场文书
python实现的web监控系统
2021/04/27 Python
Python安装使用Scrapy框架
2022/04/12 Python