【发布时间】:2014-11-28 11:02:44
【问题描述】:
我有以下数组,其中包含英语和俄语单词:
[0] => Airline_1
[1] => Second Air
[2] => Авиатор
[3] => Аврора
我正在使用以下函数对其进行排序:
uasort($newCompanyList, function ($a, $b) {
$at = iconv('UTF-8', 'ASCII//TRANSLIT', $a);
$bt = iconv('UTF-8', 'ASCII//TRANSLIT', $b);
return strcmp($at, $bt);
});
预期的结果是这样的:
[0] => Airline_1
[2] => Авиатор
[3] => Аврора
[1] => Second Air
问题是它确实对列表进行了排序,但它对它们进行了单独排序,如果有意义的话,我需要将俄语“A”放在英语“A”旁边。我怎样才能做到这一点?
【问题讨论】:
-
我猜这是不可能的
-
您无法将西里尔字母与希腊字母进行排序,因为它们彼此不匹配。顺序不同,有字母反之不知道。
-
iconv('UTF-8', 'ASCII//TRANSLIT', --);不支持西里尔字母。要音译西里尔字母,您需要构建一个自定义函数following these rules: -
创建一个多维数组,其中第二个值是带有拉丁字符的西里尔单词的含义,并按此排序。