A couple of functions for checking if a string contains any of the strings in an array, or all of the strings in an array:
<?php
function str_contains_any(string $haystack, array $needles): bool
{
return array_reduce($needles, fn($a, $n) => $a || str_contains($haystack, $n), false);
}
function str_contains_all(string $haystack, array $needles): bool
{
return array_reduce($needles, fn($a, $n) => $a && str_contains($haystack, $n), true);
}
?>
str_contains_all() will return true if $needles is an empty array. If you think that's wrong, show me a string in $needles that DOESN'T appear in the $haystack, and then look up "vacuous truth".
(By swapping haystacks and needles in the body of these functions you can create versions that check if a needle appears in any/all of an array of haystacks.)