我想比较两个数组并想得到 PHP 中匹配的值的数量。例如
$a1 = array(one, two, three);
$a2 = array(two, one, three);
如果我比较这些数组,我应该得到0
不同的结果。谁能帮忙
提前致谢。
$arr1 = array('one', 'two', 'three');
$arr2 = array('two', 'one', 'three');
echo "number of differences : " . count(array_diff($arr1, $arr2));
$a1 = array( 1, 2, 3, 4 );
$a2 = array( 2 , 1, 3, 8 );
$matched = array_intersect( $a1, $a2 );
var_dump( $matched );
这应该输出:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
array_intersect 将为您提供第二个中存在的所有元素或第一个数组 - 使用第一个数组的键
我为你做了一个简单的功能
此功能将为您提供重复和不重复的数据
我以国家为例
$contries1=array('egypt','america','england');
$contires2=array('egypt','england','china');
function countryRepeated($contries1,$contires2,$status='1'){
foreach($contries1 as $country){
if(in_array($country,$contires2))
$repeated[]=$country;
else
$unrepeated[]=$country;
}
return ($status=='1')?$repeated:$unrepeated;
}
要获得重复的国家使用
print_r(countryRepeated($contries1,$contires2));
结果:
Array ( [0] => egypt [1] => england )
或者,如果您想获得未重复的国家
您可以使用:
print_r(countryRepeated($contries1,$contires2,'2'));
结果:
Array ( [0] => america )