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 中执行系统外部命令
Oct 09 PHP
PHP insert语法详解
Jun 07 PHP
php反弹shell实现代码
Apr 22 PHP
PHP日期处理函数 整型日期格式
Jan 12 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
Oct 06 PHP
PHP检测移动设备类mobile detection使用实例
Apr 14 PHP
php实现按文件名搜索文件的远程文件查找器
May 10 PHP
在Nginx上部署ThinkPHP项目教程
Feb 02 PHP
typecho插件编写教程(二):写一个新插件
May 28 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
May 13 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
thinkphp3.2.0 setInc方法 源码全面解析
Jan 29 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
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
几个实用的PHP内置函数使用指南
2014/11/27 PHP
php数组使用规则分析
2015/02/27 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
php数组随机排序实现方法
2015/06/13 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
node.js cookie-parser 中间件介绍
2016/06/06 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
js仿淘宝评价评分功能
2017/02/28 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
python网络编程学习笔记(二):socket建立网络客户端
2014/06/09 Python
Python之re操作方法(详解)
2017/06/14 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
饲料采购员岗位职责
2013/12/19 职场文书
信息技术专业大学生职业生涯规划书
2014/01/24 职场文书
人与自然观后感
2015/06/16 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android