程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php數組中包含中文的排序方法

php數組中包含中文的排序方法

編輯:關於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;

      }

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved