如何根据本地化对数组进行排序?

时间:2012-04-22 23:45:16

标签: php sorting localization

我正在尝试按字母顺序对一系列名称进行排序(在本例中为克罗地亚语)。

如何在Đani之前显示Derrick

$names = array(
    "Đani", "Bill", "Dennis", "George", "Derrick"
);

sort($names);

print_r($names);

2 个答案:

答案 0 :(得分:5)

您需要适当地设置区域设置,可能是这样的:

setlocale(LC_ALL, 'hr_HR');

然后告诉sort以尊重语言环境:

sort($names,SORT_LOCALE_STRING);

答案 1 :(得分:0)

如果可以,您可以将它们导入MySQL表并使用ORDER BY子句进行排序,前提是您为数据库/表设置了正确的排序规则。

我确信有更简单的解决方案,不需要RDMS。

同样看看这个问题:Natural sorting algorithm in PHP with support for Unicode?