有没有更好的方法来对包含各种语言的字符串的数组进行排序

问题:需要根据特定语言(例如希腊语(el))对包含字符串的数组(例如语言的原始名称)进行排序,以这种方式,首先对用希腊语编写的名称进行排序,然后对其余名称进行排序在其他语言中。


输入:


$arLanguages = [

    'English',

    'Αγγλικά',

    'Русский',

    'Ρωσική',

    'Ελληνικά',

];

预期输出:


Array

(

    [0] => Αγγλικά

    [1] => Ελληνικά

    [2] => Ρωσική

    [3] => English

    [4] => Русский

)

我尝试过的:


setlocale(LC_COLLATE, 'el');

asort($arLanguages);

print_r($arLanguages);

结果:什么也没发生。


温温酱
浏览 139回答 1
1回答

忽然笑

您可以使用Collator::sort$arLanguages = [    'English',    'Αγγλικά',    'Русский',    'Ρωσική',    'Ελληνικά',];$coll = collator_create( 'el' );collator_asort( $coll, $arLanguages ); // to preserve indexesprint_r($arLanguages); //output Array ( [0] => Αγγλικά [1] => Ελληνικά [2] => Ρωσική [3] => English [4] => Русский )
打开App,查看更多内容
随时随地看视频慕课网APP