2011-03-31 113 views
1

我已经给出了一个需要按键(关联数组)排序的数组,并且它可能有一些重音字符(à,è,ì等)。如果它有帮助,我确实知道将要使用的语言,所以我应该能够在理论上设置语言环境。所以,我原来的理论是做像这样:PHP ksort似乎不受setlocale的影响

setlocale(LC_COLLATE, 'fre'); 
ksort($array, SORT_LOCALE_STRING); 

不出现改变ksort在所有的工作方式 - 重音符号总是最后字母时,我会觉得他们应该经过至少来常规字符。例如,'èvery'会在'every'之后出现,但不会在'fair'之后出现。于是,我开始研究collat​​or,但找不到用数组键排序的方法。如果有人有任何想法,将不胜感激。

+3

你确定你的语言代码正确吗? – 2011-03-31 20:21:25

+0

在这里工作,确实很可能是locale问题。 – Wrikken 2011-03-31 20:25:57

+0

我不确定,我基于'fre':“类别/区域名称可以在»RFC 1766和»ISO 639中找到。不同的系统有不同的区域设置命名方案。”从http://php.net/manual/en/function.setlocale.php,我用链接页面上的第二个ISO 639代码(显示fra/fre) – 2011-03-31 20:26:36

回答

2

这是在Windows还是Linux(或Mac)服务器上?我相信Windows上的语言环境代码略有不同...例如Linux上的'nl_NL'和Windows上的'nld_nld'。

+0

请参阅http://msdn.microsoft.com/en-us/library/39cwe7zf%28vs.71%29.aspx Winows区域代码。他们是不同的,并不是每个地区都支持。 – 2012-03-17 14:12:37