-
- 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文字セットが比較的大きいことがわかったので、変更しました。認識できない文字については、次のように変更します。
-
- 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;
- }
コピーコード
|