這可以簡化。
$arr1 = ['value1','value2','value3','value4'];
$arr2 = ['value1','value3'];
$arr3 = ['value1a','value3'];
$arr4 = ['value1a','value3a'];
echo "is_array_intersect()\n";
echo "arr2 = " . (is_array_intersect($arr1,$arr2) ? 'TRUE' : 'FALSE') . "\n";
echo "arr3 = " . (is_array_intersect($arr1,$arr3) ? 'TRUE' : 'FALSE') . "\n";
echo "arr4 = " . (is_array_intersect($arr1,$arr4) ? 'TRUE' : 'FALSE') . "\n";
echo "is_array_intersect2()\n";
echo "arr2 = " . (is_array_intersect2($arr1,$arr2) ? 'TRUE' : 'FALSE') . "\n";
echo "arr3 = " . (is_array_intersect2($arr1,$arr3) ? 'TRUE' : 'FALSE') . "\n";
echo "arr4 = " . (is_array_intersect2($arr1,$arr4) ? 'TRUE' : 'FALSE') . "\n";
function is_array_intersect($arr1,$arr2) {
$arr1 = array_flip($arr1);
$arr2 = array_flip($arr2);
$intersectArr = array_intersect_key($arr1,$arr2);
if (count($intersectArr)) {
return true;
}
return false;
}
function is_array_intersect2($arr1,$arr2) {
return count(array_intersect($arr1,$arr2)) > 0;
}
輸出:
is_array_intersect()
arr2 = TRUE
arr3 = TRUE
arr4 = FALSE
is_array_intersect2()
arr2 = TRUE
arr3 = TRUE
arr4 = FALSE
看到的代碼在行動:http://sandbox.onlinephpfunctions.com/code/912306c093a9dcc3b760cd6c84bdd95c0595b19b
只要使用'array_intersect()',然後你不必翻轉你的數組。 – Rizier123