在PHP和MySQL中是否有办法比较2个不同的数组(列表)变量并说明有多少项是相同的
例如,
$array1 = "hello, bye, google, laptop, yes";
$array2 = "google, bye, windows, no, phone";
然后一个echo语句会说有多少项是相同的。在这个例子中,它将是2,这将被回应。
这与大多数数组问题不同,因为我的网站使用逗号进行设置的方式会使其变得非常复杂
答案 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()
函数
答案 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);