2017-04-04 82 views
2

是否可以使用区域设置对PHP数组进行排序?使用语言环境设置排序PHP数组?

这是设置:

我在PHP做一个互动的排序列表。通过用户输入,可以制作多个类别(列)中的一个来指导分类(姓名,住所等)。这个我通过使用array_multisort()函数来制定。

下一个障碍。该列表为瑞典语,用户将会看到瑞典语字母顺序:abcdefghijklmnopqrstuvxyz å ä ö。现在解释器将å ä ö排序为非字母并将它们放在“a”之前。如何补救?

我在setlocale(LC_COLLATE, "sv_SV")函数上发现了一些零散的信息,但是评论并不好,我也没有设法理解它如何与array_multisort()一起使用。它可以?如果是这样,怎么样?有没有另一种方式内的PHP?

事情是,必须有某种方式 - 瑞典网站比比皆是,应用瑞典排序顺序。它可以用PHP来完成吗?

回答

1

使用SORT_LOCALE_STRING作为array_multisort()函数的第三个参数。 PHP ducuments说:

SORT_LOCALE_STRING - 比较项目作为字符串,根据当前的区域设置。它使用的语言环境,这可以使用的setlocale()来改变

例如:

$result=array_multisort($input_array, SORT_ASC, SORT_LOCALE_STRING); 
0

对不起。这不是我认为的问题。用我的代码写的文本得到正确的排序(只有ä得到错误排序之前å,但似乎在规格(?)的错误)。

无论如何,问题显然是与字符编码。这是从联系表格7数据库(Wordpress插件)中提取文本时出现的问题。据推测它有另一种编码和需要转换。

无论如何。

相关问题