php数组中包含中文的排序方法

 更新时间:2014年06月03日 09:25:17   作者:  
这篇文章主要介绍了php数组中包含中文的排序方法,需要的朋友可以参考下
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;
}

相关文章

  • Codeigniter中集成smarty和adodb的方法

    Codeigniter中集成smarty和adodb的方法

    这篇文章主要介绍了Codeigniter中集成smarty和adodb的方法,结合实例形式分析了Codeigniter库的使用技巧,需要的朋友可以参考下
    2016-03-03
  • php使用Swoole实现毫秒级定时任务的方法

    php使用Swoole实现毫秒级定时任务的方法

    这篇文章主要介绍了php使用Swoole实现毫秒级定时任务的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • PHP中in_array的隐式转换的解决方法

    PHP中in_array的隐式转换的解决方法

    本篇文章主要介绍了PHP中in_array的隐式转换的解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • PHP通过反射动态加载第三方类和获得类源码的实例

    PHP通过反射动态加载第三方类和获得类源码的实例

    这篇文章主要介绍了PHP通过反射动态加载第三方类和获得类源码的方法,一般在解析XML文件时会用到,需要的朋友可以参考下
    2015-11-11
  • yii2.0框架使用 beforeAction 防非法登陆的方法分析

    yii2.0框架使用 beforeAction 防非法登陆的方法分析

    这篇文章主要介绍了yii2.0框架使用 beforeAction 防非法登陆的方法,结合实例形式分析了yii2.0框架中beforeAction的基本原理、用法及防止非法登陆的相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • 比较好用的PHP防注入漏洞过滤函数代码

    比较好用的PHP防注入漏洞过滤函数代码

    PHP整站防注入程序,需要在公共文件中require_once本文件,因为现在网站被注入攻击现象很严重,所以推荐大家使用
    2012-04-04
  • ThinkPHP3.1查询语言详解

    ThinkPHP3.1查询语言详解

    这篇文章主要介绍了ThinkPHP3.1查询语言,需要的朋友可以参考下
    2014-06-06
  • PHP+AJAX 投票器功能

    PHP+AJAX 投票器功能

    这篇文章主要介绍了PHP+AJAX 投票器功能,本文通过一个实例代码给大家介绍的非常详细,需要的朋友参考下
    2017-11-11
  • TP3.2.3框架文件上传操作实例详解

    TP3.2.3框架文件上传操作实例详解

    这篇文章主要介绍了TP3.2.3框架文件上传操作,结合实例形式详细分析了thinkPHP3.2.3框架文件上传相关原理、实现方法与操作注意事项,需要的朋友可以参考下
    2020-01-01
  • thinkphp多层MVC用法分析

    thinkphp多层MVC用法分析

    这篇文章主要介绍了thinkphp多层MVC用法,结合实例分析了thinkPHP中多层MVC的具体原理与相关使用技巧,需要的朋友可以参考下
    2015-12-12

最新评论