Php 使用冰岛语言环境对数组进行排序

Php 使用冰岛语言环境对数组进行排序,php,locale,Php,Locale,我有一个冰岛名字的列表,我需要排序,例如 ["Árni", "Anna", "Birkir"] 正确的冰岛秩序应该在A和B之间 如果我尝试通过Collator进行排序,我会收到一条错误消息,说明使用了回退(=未安装冰岛语?[如何]安装其他语言?) 但是,如果我尝试在setlocale(LC_COLLATE,'is_is')之后通过strnatcmp进行排序,它会在Y和Þ之间返回Á(这是错误的) 如何在不亲自编程的情况下获得正确排序的冰岛名称?您可以使用该类(如果可用) 输出: array(3)

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

["Árni", "Anna", "Birkir"]
正确的冰岛秩序应该在
A
B
之间

如果我尝试通过Collator进行排序,我会收到一条错误消息,说明使用了回退(=未安装冰岛语?[如何]安装其他语言?)

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

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

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

输出:

array(3) { [0]=> string(4) "Anna" [1]=> string(5) "Árni" [2]=> string(6) "Birkir" }
使用
var_转储(class_存在('Collator',false))您可以检查该类是否可用

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