Это работает (предполагается, что скрипт в UTF-8):
<?php
$arr = array(
"Belgien",
"Frankreich",
"Italien",
"Luxemburg",
"Niederlande",
"United Kingdom",
"Österreich",
"Spanien",
"Ásdf",
);
setlocale(LC_COLLATE, "pt_PT.UTF8");
usort($arr, 'strcoll');
print_r($arr);
дает мне:
Array
(
[0] => Ásdf
[1] => Belgien
[2] => Frankreich
[3] => Italien
[4] => Luxemburg
[5] => Niederlande
[6] => Österreich
[7] => Spanien
[8] => United Kingdom
)
Однако, это больно;для этого требуется установить локаль.locale -a
дает вам установленные локали, например, в моей машине это дает мне:
C
en_US
en_US.iso88591
en_US.utf8
POSIX
pt_PT.utf8