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 接口类与抽象类的实际作用
Nov 26 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
May 16 PHP
php array_unique之后json_encode需要注意
Jan 02 PHP
php实现把数组按指定的个数分隔
Feb 17 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
使用PHPMailer实现邮件发送代码分享
Oct 23 PHP
PHP之正则表达式捕获组与非捕获组(详解)
Jul 29 PHP
php正则修正符用法实例详解
Dec 29 PHP
AJAX的使用方法详解
Apr 29 PHP
PHP设计模式之原型模式定义与用法详解
Apr 03 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 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循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
PHP动态页生成静态页的3种常用方法
2014/11/13 PHP
javascript 表单规则集合对象
2009/07/21 Javascript
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
JavaScript小技巧 2.5 则
2010/09/12 Javascript
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
js实现简易计算器功能
2019/10/18 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
python算法学习之基数排序实例
2013/12/18 Python
Python网络爬虫实例讲解
2016/04/28 Python
python绘制多个曲线的折线图
2020/03/23 Python
用Django写天气预报查询网站
2018/10/21 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
tensorflow 环境变量设置方式
2020/02/06 Python
请写出 BOOL flag 与"零值"比较的 if 语句
2016/02/29 面试题
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
军训个人总结
2015/03/03 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python