php – sort()为日语
发布时间:2020-12-13 16:26:55 所属栏目:PHP教程 来源:网络整理
导读:如果我将当前的语言环境设置为日文,那么如何使日语字符总是比非日语字符更高的偏好.例如,现在英文字符将始终出现在片假名字符之前.如何扭转这种效应? 对不起,不清楚正如你可以看到here. 最终的结果有Java,NVIDIA和Windowsファイアウォール. 排在日本人头前
如果我将当前的语言环境设置为日文,那么如何使日语字符总是比非日语字符更高的偏好.例如,现在英文字符将始终出现在片假名字符之前.如何扭转这种效应?
对不起,不清楚正如你可以看到here. 最终的结果有Java,NVIDIA和Windowsファイアウォール.
使用
usort()而不是
sort(),以便您可以以自己的方式定义比较标准.
尝试这个简单的方法.我已经尝试了从here的例子,它的作品. function mccompare($a,$b) { $fca = ord(substr($a,1)); $fcb = ord(substr($b,1)); if (($fca >= 127 && $fcb >= 127) || ($fca < 127 && $fcb < 127)) $res = $a > $b ? 1 : -1; else $res = $a > $b ? -1 : 1; return $res; } usort ($your_array,"mccompare"); 所以这个例子 setlocale(LC_COLLATE,"jpn"); $your_array = array ("システム","画面","Windows ファイウォール","インターネット オプション","キーボード","メール","音声認識","管理ツール","自動更新","日付と時刻","タスク","プログラムの追加と削除","フォント","電源オプション","マウス","地域と言語オプション","電話とモデムのオプション","Java","NVIDIA"); usort ($your_array,"mccompare"); print_r($your_array); 它返回数组 Array ( [0] => インターネット オプション [1] => キーボード [2] => システム [3] => タスク [4] => フォント [5] => プログラムの追加と削除 [6] => マウス [7] => メール [8] => 地域と言語オプション [9] => 日付と時刻 [10] => 画面 [11] => 管理ツール [12] => 自動更新 [13] => 電源オプション [14] => 電話とモデムのオプション [15] => 音声認識 [16] => Java [17] => NVIDIA [18] => Windows ファイウォール ) 注意:这只是我的这个问题的快速解决方案,这不是一个完美的解决方案.它基于在比较字符串中检查第一个字节,但您可以随时推动其中的一些工作,并改进此功能以根据Unicode检查所有多字节字符,然后决定$a <= $b或$a> $b. 希望对你有帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |