说两个阵列中有多少项相同?

时间:2017-06-24 11:13:39

标签: php mysql arrays

在PHP和MySQL中是否有办法比较2个不同的数组(列表)变量并说明有多少项是相同的

例如,

$array1 = "hello, bye, google, laptop, yes";
$array2 = "google, bye, windows, no, phone";

然后一个echo语句会说有多少项是相同的。在这个例子中,它将是2,这将被回应。

这与大多数数组问题不同,因为我的网站使用逗号进行设置的方式会使其变得非常复杂

3 个答案:

答案 0 :(得分:2)

在php中尝试array_intersect()函数

<?php

$array1 = array("a" => "green", "red", "blue");

$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
print_r(count($result));
?>

您可以使用count()函数

计算输出数组中的元素

doc link

答案 1 :(得分:2)

$array_new1  = explode(',',$array1);
$array_new2  = explode(',',$array2);

    $array_1 = array_map('trim', $array_new1);
    $array_2 = array_map('trim', $array_new2);

$data =array();
 foreach($array_2 as $value){ 
     if(in_array($value,$array_1)){    
       $data[] = $value; 
     } 
 }
  echo count($data);

答案 2 :(得分:1)

首先,你必须将你的字符串转换为带有trim的数组。然后用 array_intersect获得共同的价值观。

$array1 = "hello, bye, google, laptop, yes";
$array2 = "google, bye, windows, no, phone";
$array_new1 = array_map('trim', explode(',', $array1));
$array_new2 =array_map('trim', explode(',', $array2));
$common = array_intersect($array_new1, $array_new2);
print_r($common);
echo count($common);