Ответ 1
if (count(array_intersect($array1, $array2)) === 0) {
// No values from array1 are in array 2
} else {
// There is at least one value from array1 present in array2
}
http://php.net/manual/en/function.array-intersect.php
Наверное, ничего не стоит, что, по всей вероятности, под капотом используется цикл.