Проверьте этот код,
<?php
function strpos_array($haystack, $needles, &$str_return) {
if (is_array($needles)) {
foreach ($needles as $str) {
if (is_array($str)) {
$pos = strpos_array($haystack, $str);
} else {
$pos = strpos($haystack, $str);
}
if ($pos !== FALSE) {
$str_return[] = $str;
}
}
} else {
return strpos($haystack, $needles);
}
}
// Test
$str = [];
$array_keywords = ('red','blue','green');
$string = "Sometimes I'm happy, Sometimes I'm blue, Sometimes I'm sad";
strpos_array($string, $array_keywords,$str_return);
print_r($str_return);
?>
Это продвинутый strpos код с массивами.
Более точный способ выполнения вашего требования - получить массив, если соответствует более чем одному элементу.