我正在尝试使用PHP比较两个数组。例如。
$one = ["A", "C", "B", "D", "A", so on....]
$two = ["A", "B", "B", "C", "A", so on....]
我想要做的是比较数组并获得相同的项目数。我只比较具有相同索引的项目。这就是我的想法
$ctr=0;
if ($one[0] == $two[0]){
$ctr++;
}
if ($one[1] == $two[1]){
$ctr++;
}
// so on.......
echo $ctr++;
但上面的代码仅适用于固定长度的数组。任何人都可以帮我提供代码吗?
答案 0 :(得分:5)
看看
$common = array_intersect($one,$two);
echo count($common);
// for key
$common = array_intersect_key($one,$two);
echo count($common);
答案 1 :(得分:4)
首先,您可以使用循环而不是手动编写每个条件。演示:
$ctr = 0;
for($i = 0; $i < count($one); $i++) {
$ctr += $one[$i] == $two[$i];
}
如果要比较具有相同索引的项目,并且数组的长度可能不同,那么,
$ctr = 0;
for($i = 0; $i < min(count($one), count($two)); $i ++) {
$ctr += $one[$i] == $two[$i];
}
在第二段代码中,我们检查直到较短阵列的末尾。
如果您对订单不感兴趣,可以在任何地方进行匹配,请尝试array_intersect以及进行索引检查Array_intersect_assoc
答案 2 :(得分:0)
您可以使用以下内容来实现:
$arr = array_intersect(array('a', 'b', 'c', 'd'),array('c', 'd', 'e', 'f'));
$array_length = sizeof($arr);
希望这会对你有所帮助。