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 cookie 登录验证示例代码
Mar 16 PHP
php jquery 实现新闻标签分类与无刷新分页
Dec 18 PHP
PHP操作数组的一些函数整理介绍
Jul 17 PHP
PHP中获取文件扩展名的N种方法小结
Feb 27 PHP
PHP mysql与mysqli事务使用说明 分享
Aug 17 PHP
php简单获取目录列表的方法
Mar 24 PHP
php中请求url的五种方法总结
Jul 13 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
PHP设计模式之简单工厂和工厂模式实例分析
Mar 25 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 05 PHP
PHP中SESSION过期设置
Mar 09 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实现网站插件机制的方法
2009/11/10 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
根据地区不同显示时间的javascript代码
2007/08/13 Javascript
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
Node.js中child_process实现多进程
2015/02/03 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
2016/08/08 Javascript
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
JS实现移动端在线签协议功能
2019/08/22 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
python 随机数生成的代码的详细分析
2011/05/15 Python
python读写LMDB文件的方法
2018/07/02 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
2016/04/15 面试题
销售行政专员职责
2014/01/03 职场文书
成考报名单位证明范本
2014/01/16 职场文书
区优秀教师事迹材料
2014/02/10 职场文书
淘宝店铺营销方案
2014/02/13 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
成绩单评语
2015/01/04 职场文书
汉字听写大会观后感
2015/06/12 职场文书
golang语言指针操作
2022/04/14 Golang