Php 匹配内爆数据与另一个内爆数据

Php 匹配内爆数据与另一个内爆数据,php,mysql,match,implode,Php,Mysql,Match,Implode,我有来自两个不同表的数据,其中的数据在从复选框中选择后被内爆,并被“,”分割。在我从数据库中选择它们之后,这两个变量可能是这样的 $firstvar = Red, Blue, Green, Yellow $secondvar = Green, Purple, White 所以我想知道当两个变量中至少有一种颜色匹配时,如何检查是否存在匹配 我一直在尝试: if (strpos($firstvar , $firstvar ) !== false) { echo 'There is a m

我有来自两个不同表的数据,其中的数据在从复选框中选择后被内爆,并被“,”分割。在我从数据库中选择它们之后,这两个变量可能是这样的

$firstvar = Red, Blue, Green, Yellow

$secondvar = Green, Purple, White
所以我想知道当两个变量中至少有一种颜色匹配时,如何检查是否存在匹配

我一直在尝试:

if (strpos($firstvar , $firstvar ) !== false) {
    echo 'There is a match';
}

但它不起作用。

从数据库获取结果后,分解这两个变量:

就这样,

$firstvar = explode(",",$firstvar);
$secondvar = explode(",",$secondvar );
现在,使用此功能:

$match = array_intersect($firstvar,$secondvar);
现在,将结果输出内爆:

$result = implode(",",$match);
echo $result;

希望,这可能对您有用。

array\u intersect per chance?-奇怪,因为您的示例(几乎)与手册中的完全匹配!!?!?!为了@草莓点,在你内爆它们之前做这件事……更好的选项数组。这似乎是一条路,但我在代码上遇到了奇怪的问题。让我们以音乐类型为例:$var='Pop,Blues';vartwo=‘爵士乐、摇滚乐、流行乐’$genreone=explode(“,”,$var);$genretwo=explode(“,”,$vartwo)$结果=数组相交($genreone,$genretwo);如果(!empty($result)){echo'Works';}否则{echo'not work';}这表示没有匹配,但显然有一个与流派流行音乐匹配。它不起作用,因为在$vartwo中,“Pop”中逗号后有一个额外的空格,请删除额外的空格或在分解过程中使用逗号提供额外的空格,就像这样->$genreone=explode(“,”,$var);简单地说,在保存到数据库之前将数据(从数组到字符串)内爆的方式,就是在从数据库检索之后将数据(从字符串到数组)以相同的方式分解。例如:如果在保存到数据库之前,在“内爆”BR期间在逗号后提供了额外的空间,那么在“分解”期间,在从数据库检索后,也在逗号后提供额外的空间,否则将在数组值中插入额外的空间。