www.adminn.cn
站长正能量分享网!

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

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

这篇文章主要介绍了php数组中包含中文的排序方法,需要的朋友可以参考下。

php数组中文排序,文件格式一般用utf8,直接用asort排序不行。若是gbk和gb2312可以。这跟编码有关。gbk和gb2312本身的编码就是用拼音排序的。

代码如下:

  1. function utf8_array_asort(&$array) { 
  2. if(!isset($array) || !is_array($array)) { 
  3.   return false; 
  4. foreach($array as $k=>$v) { 
  5.   $array[$k] = iconv('UTF-8''GB2312',$v); 
  6. asort($array); 
  7. foreach($array as $k=>$v) { 
  8.   $array[$k] = iconv('GB2312''UTF-8'$v); 
  9. return true; 

使用例子:

  1. $abc = array('a'=>'猜''b'=>'我','c'=>'哦','d'=>'棍','e'=>'f','f'=>'爸','z'=>'州'); 
  2. utf8_array_asort($abc); 
  3. print_r($abc); 

但是使用这个函数发现,有些文字会出错,可能是utf8编码认不出某些字导致的“非法字符”,据了解GBK字符集比较大,换成GBK,再加上IGNORE忽略掉不认识的字符 ,改成下面这样:

  1. private function utf8_array_asort(&$array) { 
  2.   if(!isset($array) || !is_array($array)) { 
  3.    return false; 
  4.   } 
  5.   foreach($array as $k=>$v) { 
  6.    $array[$k] = iconv('UTF-8''GBK//IGNORE',$v); 
  7.   } 
  8.   asort($array); 
  9.   foreach($array as $k=>$v) { 
  10.    $array[$k] = iconv('GBK''UTF-8//IGNORE'$v); 
  11.   } 
  12.   return true; 

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php数组中包含中文的排序方法》
文章链接:https://www.adminn.cn/news/6984.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

本站源码仅供本地环境下学习借鉴研究使用!

源码请勿用于任何涉灰站点!净化网络,站长更有责!

支付宝扫一扫打赏