php配列には中国語のソート方法が含まれています。


php配列の中国語は並べ替えて、ファイルのフォーマットは普通はutf 8を使って、直接asortで並べ替えるのは駄目です。gbkとgb 2312ならいいです。これはコードと関係があります。gbkとgb 2312自体のコードはピンインで並べられています。

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);
しかし、この関数を使って、一部の文字が間違っていることが分かりました。おそらく、utf 8符号化によって、一部の文字が認識されなくなった「不正文字」かもしれません。GBK文字セットが大きく、GBKに変更され、IGNOREによって認識されていない文字が無視され、次のようになりました。