PHP中的排序问题


Sorting Issue in PHP

我有一个这样的数组:

$country = array(
                    "Afrique du Sud",
                    "Mexique",
                    "Pays-Bas",
                    "Îles Cook",
                    "États-Unis",
                    "Émirats arabes unis",
                    "Viêt Nam"
                );

我想对这个数组进行排序,我这样做:

sort($country);

我得到的结果如下:

Array ( [0] => Afrique du Sud [1] => Mexique [2] => Pays-Bas [3] => Viêt Nam [4] => Émirats arabes unis [5] => États-Unis [6] => Îles Cook ) 

但我期待:

Array ( [0] => Afrique du Sud [1] => Émirats arabes unis [2] => États-Unis [3] => Îles Cook [4] => Mexique [5] => Pays-Bas [6] => Viêt Nam   ); 

怎样才能达到我预期的结果?

对于这种情况,您应该使用Collator类。

要求: (PHP 5> = 5.3.0 PHP 7, PECL intl> = 1.0.0)

描述:提供字符串比较功能,支持适当的语言环境敏感排序顺序。

$collator = new Collator('en_US');
$collator->sort($country);