【问题标题】:Sort array alphabetical as nordic/locale order将数组按字母顺序排序为北欧/语言环境顺序
【发布时间】:2021-06-03 13:33:14
【问题描述】:

对不起 - 我正在学习 PHP。寻求帮助按名称对数组进行排序 - 但作为我的语言环境字母表。

我想将数组排序为北欧字母,我想最后留下带有数字的行,我尝试使用 setlocale 进行多重排序,但无法正确排序。

我的示例数组:

Array(
[3] => Array
(
    [0] => WP_Term Object(
        [name] = 3-title-with-starting-3
    )
)
[9] => Array
(
    [0] => WP_Term Object(
        [name] = 9-title-with-starting-9
    )
)   

[A] => Array
(
    [0] => WP_Term Object(
        [name] = A-title-with-starting-A
    )
    [1] => WP_Term Object(
        [name] = A-title-with-starting-A2
    )       
)
[Z] => Array
(
    [0] => WP_Term Object(
        [name] = Z-title-with-starting-Z
    )
    [1] => WP_Term Object(
        [name] = Z-title-with-starting-Z
    )       
)
[Ö] => Array
(
    [0] => WP_Term Object(
        [name] = Ö-title-with-starting-Ö
    )
    [1] => WP_Term Object(
        [name] = Ö-title-with-starting-Ö
    )       
))  

【问题讨论】:

    标签: php arrays sorting alphabet


    【解决方案1】:

    您可以在 php.ini 中使用 Collater 类。这是一个例子。我不是语言学家,但我认为使用挪威语言环境可能会有所帮助。

    <?php
    $letters = ['Ö', 'X', 'A', 'Z', '2', '99', 'D'];   
    //Make a Collator object with the locale code of the language to sort.
    $collator = new Collator('nb'); //nb    Norwegian Bokmål
    
    //Use Collator::sort() instead of sort() [returns a numerical array];
    //or Collator::asort() instead of asort [maintains the keys of an associative array].
    $collator->sort($letters, Collator::SORT_REGULAR);
    var_dump($letters);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多