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

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

/*
 * 非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