Простой способ сделать это - использовать array_intersect и проверить, не является ли он пустым.
$a = array('able','baker','charlie');
$b = array('zebra','yeti','xantis');
echo !!array_intersect($a, $b) ? 'true' : 'false'; //false
$a = array('able','baker','charlie');
$b = array('zebra','yeti','able','xantis');
echo !!array_intersect($a, $b) ? 'true' : 'false'; //true
Или вы можете сделать простую функцию, чтобы проверить, есть ли хотя бы одно пересечение.Это быстрее, чем первый, потому что он не должен найти все пересечения.Когда он находит его, он возвращает истину в тот момент.
function check_for_intersect($a, $b) {
$c = array_flip($a);
foreach ($b as $v) {
if (isset($c[$v])) return true;
}
return false;
}
$a = array('able','baker','charlie');
$b = array('zebra','yeti','xantis');
echo check_for_intersect($a, $b) ? 'true' : 'false';
$a = array('able','baker','charlie');
$b = array('able','zebra','yeti','xantis');
echo check_for_intersect($a, $b) ? 'true' : 'false';