php中文数组排序:非GBK编码的中文数组排序

本文发布于:2012-09-07,最后更新于:2018-12-24,如果内容失效请留言告知。

PHP内置了很多排序函数,对于中文字符,可以当作字符串的方式进行排序。但是如果希望按照汉语拼音的顺序排列,则需要转换为GBK编码进行排序。因为 GBK 的中文本身即按照汉字拼音顺序编码,故可先转换为 GBK 编码字符排序,然后再转换为 utf8 即可。以下为 utf8 编码中文数组排序示例:

code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
 * 非GBK编码的中文数组排序
 * 由于GBK的中文本身即按照汉字拼音顺序编码,故可转换为GBK编码字符排序,然后再转换为utf8即可
 */
function utf8_array_asort(&$array) {
    if(!isset($array) || !is_array($array)) {
        return false;
    }
 
    foreach($array as $k=>$v) {
        $array[$k] = trim($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;
}
点赞 (0)
  1. ARM说道:
    Google Chrome 68.0.3440.84 Google Chrome 68.0.3440.84 GNU/Linux x64 GNU/Linux x64

    实用文章 :razz:

  2. chang900说道:

    很不错

  3. 这个是可以安排的呀

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code