我将strcmp与usort结合使用,以便对国家名称数组进行排序。目前,排序顺序为:
Belgien
Frankreich
Italien
Luxemburg
Niederlande
Spanien
United Kingdom
Österreich这是正确的,除了Österreich的位置。它应该在Niederlande和Spanien之间。
我还尝试了strnatcmp和strcoll (使用setlocale),但排序顺序不是我想要的方式。结果不是来自mysql数据库,因此不能通过mysql查询进行排序。
发布于 2011-05-22 22:45:09
老问题,与此同时,我在另一家公司做另一个项目,但最近面临着同样的问题。最终成功的是为PHP安装intl extension。
sudo apt-get install php5-intl然后使用:
$arr = array(
"Belgien",
"Frankreich",
"Italien",
"Luxemburg",
"Niederlande",
"United Kingdom",
"Österreich",
"Spanien",
"Ásdf",
);
$coll = collator_create('de_DE');
$coll->sort($arr);
print_r($arr);按预期顺序返回结果:
Array
(
[0] => Ásdf
[1] => Belgien
[2] => Frankreich
[3] => Italien
[4] => Luxemburg
[5] => Niederlande
[6] => Österreich
[7] => Spanien
[8] => United Kingdom
)https://stackoverflow.com/questions/3204136
复制相似问题