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代码
Sep 10 PHP
php列出一个目录下的所有文件的代码
Oct 09 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
Jul 03 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
Nov 03 PHP
php文件夹的创建与删除方法
Jan 24 PHP
php计算到指定日期还有多少天的方法
Apr 14 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
Dec 21 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
Feb 16 PHP
ThinkPHP发送邮件示例代码
Oct 08 PHP
thinkphp自定义权限管理之名称判断方法
Apr 01 PHP
PHP实现一个轻量级容器的方法
Jan 28 PHP
thinkphp 框架数据库切换实现方法分析
May 18 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
mysql5详细安装教程
2007/01/15 PHP
PHP简单系统查询模块代码打包下载
2008/06/07 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
围观tangram js库
2010/12/28 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
2014年50个程序员最适用的免费JQuery插件
2014/12/15 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
浅谈javascript中的 “ && ” 和 “ || ”
2017/02/02 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
jQuery 防止相同的事件快速重复触发方法
2018/02/08 jQuery
Vue.js进阶知识点总结
2018/04/01 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
python 循环while和for in简单实例
2016/08/16 Python
5个很好的Python面试题问题答案及分析
2018/01/19 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
Python学习笔记之装饰器
2020/08/06 Python
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
让生命充满爱演讲稿
2014/05/10 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
抗洪救灾感谢信
2015/01/22 职场文书