如何在两个数组中获取公共数组值?

时间:2014-11-26 18:54:10

标签: php arrays

我有两个阵列。我想获得具有aray索引值相同的公共值。

检查我的代码 -

$arr1 = array(0=>5,1=>7, 2=>9, 3=>4, 4=>2, 5=>8, 6=>7, 7=>0, 8=>1);


$arr2 = array(0=>7,1=>2, 2=>4, 3=>5, 4=>9, 5=>8, 6=>5, 7=>0, 8=>6);

我想要 -

array(
   5=>8
   7=>0
)

并且$arr2是重复的值名称5我还希望从$arr2

获取重复值
array(
   3=>5
   6=>5
)

如何获取上述两个数组的匹配值和重复值?

2 个答案:

答案 0 :(得分:1)

您正在寻找array_intersect_assoc()

$arr1 = array(0=>5,1=>7, 2=>9, 3=>4, 4=>2, 5=>8, 6=>7, 7=>0, 8=>1);
$arr2 = array(0=>7,1=>2, 2=>4, 3=>5, 4=>9, 5=>8, 6=>5, 7=>0, 8=>6);

$arr = array_intersect_assoc($arr1, $arr2);

Demo

答案 1 :(得分:0)

此代码可以正常使用

<?php

$arr1 = array(0=>5,1=>7, 2=>9, 3=>4, 4=>2, 5=>8, 6=>7, 7=>0, 8=>1);
$arr2 = array(0=>7,1=>2, 2=>4, 3=>5, 4=>9, 5=>8, 6=>5, 7=>0, 8=>6);

$arr = array_intersect_assoc($arr1, $arr2);
print_r($arr);

$duplicate=array(); $duplicateVirtual=[];

foreach($arr2 as $index=>$val)
{   
    if(in_array($val,$duplicateVirtual)){ $duplicate[$index]=$val; }
    $duplicateVirtual[]=$val;
}

print_r($duplicate);

您甚至可以创建一个函数来检查重复并将数组作为变量传递。

<强> DEMo