我有两个数组。我想检查哪一个是php中的公共元素

我有两个数组。我想检查哪一个是php中的公共元素,php,Php,我有两个数组 arr[]={"red","blue","green"} arr2[]={"red","violet","black"} 如何比较这两个数组以得到两个数组共有的结果 对于这个,结果是红色的 我将如何在php中做到这一点(简单的意思)…有人能提出建议吗?简单地说: 该函数接受多个数组并返回一个数组,该数组只包含每个数组中的元素 多维的 此代码段获取所有多维数组,并在与结果相交之前将数组合并在一起: ($multi1[0]U$multi1[1]U…U$multi1[n])相交($m

我有两个数组

arr[]={"red","blue","green"}
arr2[]={"red","violet","black"}
如何比较这两个数组以得到两个数组共有的结果

对于这个,结果是红色的

我将如何在php中做到这一点(简单的意思)…有人能提出建议吗?

简单地说:

该函数接受多个数组并返回一个数组,该数组只包含每个数组中的元素

多维的 此代码段获取所有多维数组,并在与结果相交之前将数组合并在一起:
($multi1[0]U$multi1[1]U…U$multi1[n])相交($multi2[0]U$multi2[1]U…U$multi2[m])

此代码段获取所有多维数组,并在与结果相交之前将数组合并在一起:
($multi1[0]INTERSECT$multi1[1]INTERSECT…INTERSECT$multi1[n])INTERSECT($multi2[0]INTERSECT$multi2[1]INTERSECT…INTERSECT$multi2[m])

编辑递归 为了简化阅读,我对INTERSECT all案例进行了递归:

function array_intersect_multi($arrays, $dim = 1) {
    $result = null;
    foreach($arrays as $array) {
      $tmp = $dim > 1 ? array_intersect_multi($array, $dim - 1) : $array;
      if($result == null) {
        $result = $tmp;
      } else {
        $result = array_intersect($tmp, $result);
      }

    }
    return $result;
}
这样使用:

$array1 = array(array('1', '2', '3'), array('3', '5', '0'));
$array2 = array(array('5', '3', '7'), array('3', '7', '8'));
$result = array_intersect_multi(array($array1, $array2), 3);
请注意维度3,因为我们要传递的数组是:

array(
  array(
    array('1', '2', '3'),
    array('3', '5', '0')
  ),
  array(
    array('5', '3', '7'),
    array('3', '7', '8')
  )
)
结果应该是:

array('3')
快速地说:

该函数接受多个数组并返回一个数组,该数组只包含每个数组中的元素

多维的 此代码段获取所有多维数组,并在与结果相交之前将数组合并在一起:
($multi1[0]U$multi1[1]U…U$multi1[n])相交($multi2[0]U$multi2[1]U…U$multi2[m])

此代码段获取所有多维数组,并在与结果相交之前将数组合并在一起:
($multi1[0]INTERSECT$multi1[1]INTERSECT…INTERSECT$multi1[n])INTERSECT($multi2[0]INTERSECT$multi2[1]INTERSECT…INTERSECT$multi2[m])

编辑递归 为了简化阅读,我对INTERSECT all案例进行了递归:

function array_intersect_multi($arrays, $dim = 1) {
    $result = null;
    foreach($arrays as $array) {
      $tmp = $dim > 1 ? array_intersect_multi($array, $dim - 1) : $array;
      if($result == null) {
        $result = $tmp;
      } else {
        $result = array_intersect($tmp, $result);
      }

    }
    return $result;
}
这样使用:

$array1 = array(array('1', '2', '3'), array('3', '5', '0'));
$array2 = array(array('5', '3', '7'), array('3', '7', '8'));
$result = array_intersect_multi(array($array1, $array2), 3);
请注意维度3,因为我们要传递的数组是:

array(
  array(
    array('1', '2', '3'),
    array('3', '5', '0')
  ),
  array(
    array('5', '3', '7'),
    array('3', '7', '8')
  )
)
结果应该是:

数组('3')
使用函数

$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "violet", "black", "red");
$result = array_intersect($array1, $array2);
print_r($result);
结果:

Array
(
    [0] => red
)
使用函数

$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "violet", "black", "red");
$result = array_intersect($array1, $array2);
print_r($result);
结果:

Array
(
    [0] => red
)

如果我有一个多维数组,我是否能够实现它(比如一个二维数组)…如果可能的话,你能给我一个二维数组的例子吗;别忘了你可以使用你的第一个片段。如果我有一个多维数组,我能实现这个(比如二维数组)…如果可能的话,你能给我一个二维数组的例子吗;别忘了,您可以将其用于第一个代码片段。