我创建了两个数组,现在我想根据这两个数组得到匹配的元素数。
以下是阵列结构:
Array
(
[skill] => Array
(
[0] => 6
[1] => 10024
[2] => 2
[3] => 17
[4] => 16
)
)
Array
(
[skill] => Array
(
[0] => 6
[1] => 2
[2] => 17
)
)
这里有三个元素匹配,两个数组都可以有任意数量的技能/元素......我需要根据这两个数组找到匹配的元素数。
我尝试了array_intersect(),但它给出了以下结果:
我得到了什么:
Array
(
[skill] => Array
(
[0] => 6
[1] => 10024
[2] => 2
[3] => 17
[4] => 16
)
)
基本上我需要找到" count"匹配两个数组中的元素或仅返回匹配的元素,我可以从中获得计数。
答案 0 :(得分:4)
你几乎拥有它:
$count = count(array_intersect ($arr1['skill'], $arr2['skill']));
由于您实际上想要比较skill
内的数组,因此您必须访问它们。
Array_intersect为您提供了两者中的项目数组,因此我使用count函数包装整个事件,该函数返回该数组的大小,从而为您提供类似项目的数量。
答案 1 :(得分:0)
您也可以使用
$a=array(
'skill'=>array(
0=>6,
1=>10024,
2=> 2,
3=> 17,
4 => 16,
)
);
$b=array(
'skill'=>array(
0=>6,
1=>2,
2=> 17,
)
);
$array=array_merge_recursive($a, $b);
echo count($array['skill'])-count(array_unique($array['skill']));
答案 2 :(得分:-2)
你正确的方式。用户下面的代码为计数。
$a1['skill'] = array("6", "10024", "2", "17", "16");
$a2['skill'] = array("6", "2", "17");
$result = count(array_intersect($a1['skill'], $a2['skill']));
echo $result;