2016-09-27 2 views
0

У меня есть массив как это:Сортировка Проблема в 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 ); 

Как достичь ожидаемого результата?

+1

http://stackoverflow.com/a/3650743/4431269 –

+1

вам нужно добавить только две линии, [1]. setlocale (LC_COLLATE, 'nl_BE.utf8'); \t [2] .usort ($ country, 'strcoll'); эта линия добавляет, что вы можете получить свое желание. –

ответ

2

Для таких случаев вы должны использовать The Collator class.

Требование: (PHP 5> = 5.3.0, PHP 7, PECL аэроропорт> = 1.0.0)

Описание: Обеспечивает возможность сравнения строк с поддержкой соответствующей локали чувствительного вида упорядоченности.

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

РАБОТАЕТ ... Спасибо ... !! –

Смежные вопросы