我一直在使用这段代码来比较两个值,我准确地得到匹配的项目,唯一的问题是与不匹配的项目。PHP数组值和strpos函数
$filter1 = "red,green,blue,yellow";
$parts1 = explode(',', $filter1);
$filter2 = "red,green,blue";
$parts2 = explode(',', $filter2);
for($i=0; $i< count($parts1); $i++)
{
for($j=0; $j< count($parts2); $j++)
{
if(strpos($parts1[$i],$parts2[$j]) !== false)
{
$match[] = $parts1[$i];
}
else
{
$nomatch[] = $parts2[$j];
}
}
}
print_r($match);
echo "<br>";
print_r($nomatch);
什么我得到的结果是
Array ([0] => red [1] => green [2] => blue)
Array ([0] => green [1] => blue [2] => red [3] => blue [4] => red [5] => green [6] =>
red [7] => green [8] => blue)
阵列1给出确切的匹配值,但阵列2给出荒谬的结果,而不是黄色的。
您是否尝试过使用'和array_diff() '和'array_intersect()'? – complex857
我不需要使用array_diff或任何其他功能,因为我不需要精确匹配我想包含像动物和动物一样的物品。所以这就是为什么我使用strpos()函数。 –
然后'array_udiff'和'array_uintersect'是要走的路( - : – complex857