如何使用不同语言的natsort?

How to use natsort in different language?

我正在尝试使用 natsort/natcasesort 对数组进行排序。但是我在使用非英语(土耳其语)字符时遇到了麻烦。这是目前唯一适合我的选择。我怎样才能克服这个问题? 例如,数组如下所示:

   $texts= array("A","Ü","Ç","Ş","Ğ");
    natcasesort($texts);
    echo '<pre>'; print_r($files); echo '</pre>';

输出:

Array
(
    [0] => A
    [2] => Ç
    [1] => Ü
    [4] => Ğ
    [3] => Ş
)


$all_characters = [ "ğ", "Ğ", "ç", "Ç", "ş", "Ş", "ü", "Ü", "ö", "Ö", "ı", "İ" ];
    
$alphabet_all = "AaBbCcÇçDdEeFfGgĞğHhIıİiJjKkLlMmNnOoÖöPpQqRrSsŞşTtUuÜüVvWwXxYyZz";
$small_letters = array("İ","I","Ş","Ğ","Ö","Ü","Ç");
$capital_letters = array("i","ı","ş","ğ","ö","ü","ç");

应该怎样?
A, Ç, Ğ, Ş, Ü

Natsort 不适合 language-specific 排序。这就是 Collator class 的用途。

$all_characters = [ "ğ", "Ğ", "ç", "Ç", "ş", "Ş", "ü", "Ü", "ö", "Ö", "ı", "İ" ];

$collator = new Collator('tr_TR');

//The following line is only required if natsort is desired
$collator->setAttribute(Collator::NUMERIC_COLLATION, Collator::ON);

$collator->sort($all_characters);

echo implode(', ',$all_characters);
//ç, Ç, ğ, Ğ, ı, İ, ö, Ö, ş, Ş, ü, Ü