如何在PHP中使用特殊字符或数字对数组进行排序?

克里斯蒂安·伊盖(Christian Igay)

我在排序数组时遇到问题。我的代码适用于数字,但不适用于特殊字符。我也尝试了strcmp()函数,但是没有运气。这是我的代码:

$sortBy = $this->input->get('sortBy') !== NULL ? $this->input->get('sortBy') : "";
$arr_ongoing = $this->getArr($this->array_ongoing, "id");
setlocale(LC_ALL, "fr-FR");
usort($arr_ongoing, function ($a, $b) use($sortBy) {
    return strcoll($a[$sortBy], $b[$sortBy]); 
});

这是我的示例数组:Array(1 => Array([arrete_id] => 1 [etude_id] => 458 [lastname] => Chambre test [crpcen] => 29000 [ville] => Quimper)

[2] => Array
    (
        [arrete_id] => 2
        [etude_id] => 361
        [lastname] => PICART et Associé(s)
        [crpcen] => 44007
        [ville] => NANTES
    )

[3] => Array
    (
        [arrete_id] => 3
        [etude_id] => 35
        [lastname] => JARNOUEN de VILLARTAY et REGEON-VERGNOUX - SE
        [crpcen] => 22005
        [ville] => SAINT-BRIEUC CEDEX 2
    )

[12] => Array
    (
        [arrete_id] => 12
        [etude_id] => 132
        [lastname] =>  LE PAPE et LACOURT
        [crpcen] => 29022
        [ville] => PONT-L'ABBE CEDEX
    )

[13] => Array
    (
        [arrete_id] => 13
        [etude_id] => 222
        [lastname] => KERJEAN et Associé(s)
        [crpcen] => 35129
        [ville] =>  BRUZ CEDEX
    )

)

输出

巴托斯·帕乔列克(BartoszPachołek)

如果“特殊字符”是指我建议Collatorintl扩展包中使用的特定语言的字符

例如波兰标准sort

$array = [ 'a', 'ą', 'b', 'z' ];

会给你:

array(4) {
  [0] =>
  string(1) "a"
  [1] =>
  string(1) "b"
  [2] =>
  string(1) "z"
  [3] =>
  string(2) "ą"
}

而使用Collat​​or进行正确排序时:

$collator = new Collator('pl_PL');
$collator->sort($array);

给出正确的:

array(4) {
  [0] =>
  string(1) "a"
  [1] =>
  string(2) "ą"
  [2] =>
  string(1) "b"
  [3] =>
  string(1) "z"
}

如果您不能使用peclintl而是使用PHP> = 7.0.0,则可以使用以下lib:https : //github.com/voku/portable-utf8

例如:

$array = [ 'a', 'ą', 'b', 'z' ];

function mysort($a, $b) {
    return UTF8::strcmp($a, $b);
}

use voku\helper\UTF8;
usort($array, 'mysort');


它不需要安装mbstring或intl(尽管建议这样做)。

您不应该依赖setlocale因为它基于特定系统中安装的语言环境,这些语言环境可能不仅没有安装,而且它们的名称也可能不同(在Windows和* nix之间,而且在* nixes之间)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在jquery中使用字符串数组对数字进行排序

来自分类Dev

如何在PHP中使用If对数组进行排序

来自分类Dev

如何在PHP中使用逗号分隔的字符串对数组进行排序?

来自分类Dev

如何在SwiftUI中使用本地化字符串对数组进行排序

来自分类Dev

如何使用PHP对数组进行排序

来自分类Dev

在jQuery中使用整数字符串类型对数组进行排序

来自分类Dev

如何在C中对数字数组进行排序

来自分类Dev

如何使用reactjs通过字符串,数字和日期属性对数组进行排序?

来自分类Dev

在PHP中使用多个条件对数组进行排序

来自分类Dev

如何在Ruby中使用用户函数对数组进行排序?

来自分类Dev

如何在Angular JS中使用键,值对数组进行排序?

来自分类Dev

如何在此代码中使用`_key`对数组进行排序?

来自分类Dev

在Perl中使用逗号或点对字符串进行排序以对数组进行排序

来自分类Dev

如何使用PHP对数组进行排序,而忽略开头的文章(a,an,the)?

来自分类Dev

如何使用PHP以自然顺序对数组进行排序

来自分类Dev

如何使用PHP对数组进行排序,而忽略开头的文章(a,an,the)?

来自分类Dev

如何使用PHP按键值对数组数据进行排序?

来自分类Dev

用PHP对数组进行排序-数字排序

来自分类Dev

在PHP中对数组进行排序-数字排序

来自分类Dev

对数字的字符串数组列表进行排序

来自分类Dev

Java:对数字字符串数组进行排序

来自分类Dev

如何在PHP中使用冒泡排序对多维数组进行排序?

来自分类Dev

在javascript中使用数字和特殊字符对字符串进行排序

来自分类Dev

如何根据字符串中的数字对数组进行排序?

来自分类Dev

在 Ruby 中使用冒泡排序对数组进行排序

来自分类Dev

javascript-仅使用字符串中的数字对数组进行排序

来自分类Dev

如何在JMeter Beanshell中对数字数组进行排序

来自分类Dev

如何在不解析的情况下对数字字符串列表进行排序?

来自分类Dev

在C ++中使用向量对数字进行排序

Related 相关文章

  1. 1

    如何在jquery中使用字符串数组对数字进行排序

  2. 2

    如何在PHP中使用If对数组进行排序

  3. 3

    如何在PHP中使用逗号分隔的字符串对数组进行排序?

  4. 4

    如何在SwiftUI中使用本地化字符串对数组进行排序

  5. 5

    如何使用PHP对数组进行排序

  6. 6

    在jQuery中使用整数字符串类型对数组进行排序

  7. 7

    如何在C中对数字数组进行排序

  8. 8

    如何使用reactjs通过字符串,数字和日期属性对数组进行排序?

  9. 9

    在PHP中使用多个条件对数组进行排序

  10. 10

    如何在Ruby中使用用户函数对数组进行排序?

  11. 11

    如何在Angular JS中使用键,值对数组进行排序?

  12. 12

    如何在此代码中使用`_key`对数组进行排序?

  13. 13

    在Perl中使用逗号或点对字符串进行排序以对数组进行排序

  14. 14

    如何使用PHP对数组进行排序,而忽略开头的文章(a,an,the)?

  15. 15

    如何使用PHP以自然顺序对数组进行排序

  16. 16

    如何使用PHP对数组进行排序,而忽略开头的文章(a,an,the)?

  17. 17

    如何使用PHP按键值对数组数据进行排序?

  18. 18

    用PHP对数组进行排序-数字排序

  19. 19

    在PHP中对数组进行排序-数字排序

  20. 20

    对数字的字符串数组列表进行排序

  21. 21

    Java:对数字字符串数组进行排序

  22. 22

    如何在PHP中使用冒泡排序对多维数组进行排序?

  23. 23

    在javascript中使用数字和特殊字符对字符串进行排序

  24. 24

    如何根据字符串中的数字对数组进行排序?

  25. 25

    在 Ruby 中使用冒泡排序对数组进行排序

  26. 26

    javascript-仅使用字符串中的数字对数组进行排序

  27. 27

    如何在JMeter Beanshell中对数字数组进行排序

  28. 28

    如何在不解析的情况下对数字字符串列表进行排序?

  29. 29

    在C ++中使用向量对数字进行排序

热门标签

归档