0

我有一个需要排序的冰岛名称列表,例如

["Árni", "Anna", "Birkir"]

正确的冰岛语顺序应Á介于A和之间B

如果我尝试通过 Collat​​or 进行排序,我会收到一条错误消息,指出使用了回退(= 未安装冰岛语?[如何] 我可以为此安装其他语言吗?)

但是,如果我尝试通过strnatcmpafter排序setlocale(LC_COLLATE, 'is_IS'),它会在 Y 和 Þ 之间返回 Á(这是错误的)。

如何在不自己编程的情况下获得正确排序的冰岛名称?

4

1 回答 1

1

您可以使用Collator该类(如果可用)。

$arr = ["Árni", "Anna", "Birkir"];
$collator = new Collator('is_IS');
$collator->sort($arr);
var_dump($arr);

输出:

array(3) { [0]=> string(4) "Anna" [1]=> string(5) "Árni" [2]=> string(6) "Birkir" }

您可以检查该var_dump(class_exists('Collator', false));课程是否可用。

于 2019-12-16T11:28:54.180 回答