对包含法语和英语字符串的数组进行排序

时间:2012-01-26 14:16:28

标签: php sorting multilingual

我遇到的问题是,当我在我的字符串数组上调用sort()时,除了法语字符串外,它按字母顺序排列很好。

它会像这样排序:

Atlantic Inc.
Bait Inc.
Zack's Fish Mart
Émile Fisheries Inc.

如何正确对两种语言进行排序?

2 个答案:

答案 0 :(得分:1)

这是正确排序的。 “É”位于默认语言环境中的“Z”之后。

要更改此行为,请将sort()的第二个参数设置为“SORT_LOCALE_STRING”,并将系统的区域设置更改为支持所需排序的区域设置。

答案 1 :(得分:1)

排序规则高度依赖于语言环境。 您可以使用SORT_LOCALE_STRING标志强制使用区域设置:

setlocale("LC_ALL", "fr_FR.utf8"); 
sort($arraytobesorted, SORT_LOCALE_STRING);

http://php.net/manual/en/function.sort.php