【问题标题】:how to compare two arrays (case insensitive) in php [duplicate]如何在php中比较两个数组(不区分大小写)[重复]
【发布时间】:2017-10-21 18:26:35
【问题描述】:

我想知道如何在 PHP 中比较 2 个数组是否匹配。我用过array_intersect($arr1, $arr2)。我希望匹配不区分大小写。

示例:

$arr1 = ['hello', 'how', 'are', 'you'];
$arr2 = ['Hello', 'fine', 'You'];

预期输出

['hello','you']

谢谢!

【问题讨论】:

    标签: php comparison


    【解决方案1】:

    如果结果可以全小写,可以like this

    $result = array_intersect(array_map('strtolower', $arr1), array_map('strtolower', $arr2));
    

    否则,您可以使用array_uintersect,它需要一个回调来进行字符串比较。然后您可以使用strcasecmp 进行不区分大小写的字符串比较。

    $result = array_uintersect($arr1, $arr2, "strcasecmp");
    

    【讨论】:

      【解决方案2】:

      您可以通过将两个数组传递给array_map() 以便首先将它们传递给strtolower()(或strtoupper())来非常简单地完成此操作:

      $arr1 = ['hello', 'how', 'are', 'you'];
      $arr2 = ['Hello', 'fine', 'You'];
      
      var_dump(
          array_intersect(
              array_map('strtolower', $arr1),
              array_map('strtolower', $arr2)
          )
      );
      
      // [ "hello", "you" ]
      

      【讨论】:

        猜你喜欢
        • 2014-08-13
        • 2012-04-18
        • 2012-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多