【问题标题】:PHP finding the first matching value in 2 arraysPHP在2个数组中找到第一个匹配值
【发布时间】:2014-03-18 06:34:04
【问题描述】:

我有两个数组,想为 arrayOne 中的任意一个 arrayTwos 值找到第一个匹配项。

arrayOne ( [0] = C [1] = A [2] = B [3] = D [4] = B [5] = C) 

arrayTwo ( [0] = A [1] = B [2] = C )

有了这些值,我想返回值“C”,因为它是 arrayTwo 中出现在 arrayOne 中的第一个值。

我在想我可以使用 for 循环和 if 语句来运行,但是 PHP 中有什么函数可以用来简化这个吗?

【问题讨论】:

标签: php arrays string-matching


【解决方案1】:

使用array_search

$keys = array_search($second_array, $first_array);

参考:http://in3.php.net/array_search

【讨论】:

  • 所以这只返回第一个找到的值?完美的。非常感谢
【解决方案2】:

使用array_intersect。这将完成这项工作。 http://www.php.net/manual/en/function.array-intersect.php 注意使用array_intersect($array1, $array2)array_intersect($array2, $array1) 的区别

【讨论】:

    【解决方案3】:

    array_search

    $valuekeys = array_search($secondarray, $arrayone);
    

    【讨论】:

      【解决方案4】:

      你可以使用array_intersect():

      $arr1 = array( 0 => 'C', 1 => 'A', 2 => 'B', 3 => 'D', 4 => 'B', 5 => 'C');
      $arr2 = array( 0 => 'A', 1 => 'B', '2' => 'C' );
      $arr3 = array_intersect($arr1,$arr2);
      var_dump($arr3[0]);
      string(1) "C"
      

      【讨论】:

        【解决方案5】:

        使用array_intersect

        $arrayOne = array('C', 'A', 'B', 'D', 'B', 'C');
        $arrayTwo = array('A', 'C');
        $result = array_intersect($arrayOne , $arrayTwo);
        echo $result[0];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多