php数组中包含中文的排序方法


Posted in PHP onJune 03, 2014

php数组中文排序,文件格式一般用utf8,直接用asort排序不行。若是gbk和gb2312可以。这跟编码有关。gbk和gb2312本身的编码就是用拼音排序的。

function utf8_array_asort(&$array) {
if(!isset($array) || !is_array($array)) {
  return false;
}
foreach($array as $k=>$v) {
  $array[$k] = iconv('UTF-8', 'GB2312',$v);
}
asort($array);
foreach($array as $k=>$v) {
  $array[$k] = iconv('GB2312', 'UTF-8', $v);
}
return true;
}

使用例子:
$abc = array('a'=>'猜', 'b'=>'我','c'=>'哦','d'=>'棍','e'=>'f','f'=>'爸','z'=>'州');
utf8_array_asort($abc);
print_r($abc);

但是使用这个函数发现,有些文字会出错,可能是utf8编码认不出某些字导致的“非法字符”,据了解GBK字符集比较大,换成GBK,再加上IGNORE忽略掉不认识的字符 ,改成下面这样
private function utf8_array_asort(&$array) {
  if(!isset($array) || !is_array($array)) {
   return false;
  }
  foreach($array as $k=>$v) {
   $array[$k] = iconv('UTF-8', 'GBK//IGNORE',$v);
  }
  asort($array);
  foreach($array as $k=>$v) {
   $array[$k] = iconv('GBK', 'UTF-8//IGNORE', $v);
  }
  return true;
}
PHP 相关文章推荐
Ajax PHP分页演示
Jan 02 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
Jun 11 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
PHP取进制余数函数代码
Jan 19 PHP
php的SimpleXML方法读写XML接口文件实例解析
Jun 16 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
Sep 10 PHP
php实现utf-8转unicode函数分享
Jan 06 PHP
php中 $$str 中 "$$" 的详解
Jul 06 PHP
Yii中CGridView禁止列排序的设置方法
Jul 12 PHP
PHP实现的XML操作类【XML Library】
Dec 29 PHP
PHP的mysqli_ssl_set()函数讲解
Jan 23 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
Oct 30 PHP
php实现文件下载实例分享
Jun 02 #PHP
php+js实现异步图片上传实例分享
Jun 02 #PHP
php实例分享之html转为rtf格式
Jun 02 #PHP
php 伪静态之IIS篇
Jun 02 #PHP
php伪静态之APACHE篇
Jun 02 #PHP
50个PHP程序性能优化的方法
Jun 02 #PHP
浅谈php扩展imagick
Jun 02 #PHP
You might like
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
JavaScript学习笔记(十)
2010/01/17 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
python操作MySQL数据库具体方法
2013/10/28 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
服务员自我评价
2014/01/25 职场文书
社区庆八一活动方案
2014/02/02 职场文书
主题婚礼策划方案
2014/02/10 职场文书
运动会通讯稿500字
2014/02/20 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
干部个人考察材料
2014/12/24 职场文书
干部外出学习心得体会
2016/01/18 职场文书
解决golang结构体tag编译错误的问题
2021/05/02 Golang
MySQL索引是啥?不懂就问
2021/07/21 MySQL
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python