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 相关文章推荐
PHP 编程请选择正确的文本编辑软件
Dec 21 PHP
php array_search() 函数使用
Apr 13 PHP
Look And Say 序列php实现代码
May 22 PHP
php存储过程调用实例代码
Feb 03 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
php把大写命名转换成下划线分割命名
Apr 27 PHP
我整理的PHP 7.0主要新特性
Jan 07 PHP
php redis实现对200w用户的即时推送
Mar 04 PHP
PHP如何搭建百度Ueditor富文本编辑器
Sep 21 PHP
PHP7 echo和print语句实例用法
Feb 15 PHP
PHP通过GD库实现验证码功能示例
Feb 23 PHP
Yii框架getter与setter方法功能与用法分析
Oct 22 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
PHP的面试题集
2006/11/19 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
jQuery消息提示框插件Tipso
2015/05/04 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
vue中template的三种写法示例
2020/10/21 Javascript
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
Python断言assert的用法代码解析
2018/02/03 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
python异常触发及自定义异常类解析
2019/08/06 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
化工工艺专业求职信
2013/09/22 职场文书
生产现场工艺工程师岗位职责
2013/11/28 职场文书
后备干部考察材料
2014/02/12 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
优秀教师先进材料
2014/12/16 职场文书
借款民事起诉状范文
2015/05/19 职场文书
《卖火柴的小女孩》教学反思
2016/02/19 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
Python异常类型以及处理方法汇总
2021/06/05 Python