我有一个需要排序的冰岛名字列表,例如
["Árni", "Anna", "Birkir"]正确的冰岛语顺序应该是Á介于A和B之间。
如果我尝试通过排序器进行排序,我得到一条错误消息,指出使用了回退(=未安装冰岛语?我怎样才能安装更多的语言呢?)
但是,如果我尝试在setlocale(LC_COLLATE, 'is_IS')之后通过strnatcmp进行排序,它会返回Y和?之间的α(这是错误的)。
如何在不自己编程的情况下获得正确排序的冰岛语名称?
发布于 2019-12-16 19:28:54
您可以使用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));,您可以检查类是否可用。
https://stackoverflow.com/questions/58680172
复制相似问题