我一直在使用這段代碼來比較兩個值,我準確地得到匹配的項目,唯一的問題是與不匹配的項目。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