Если вам необходимо знать, что не менее 2 из требуемых слов существует в строке, вам следует быть осторожным.Если у вас есть 2 одинаковых слова в строке, легко получить ложный положительный результат, если вы просто используете preg_match_all
для поиска происшествий.
Это сообщит 3, то есть все 3 слова присутствуют в стоге сена
$string = 'This string contains a string and a few other words!';
$finds = ['string', 'few', 'words'];
$findCount = 0;
foreach ($finds as $find) {
if ( strpos($string, $find) !== false ) $findCount++;
}
echo $findCount;
Он сообщит 2, если вы используете эту строку
$string = 'This string contains a string and a other words!';
И, самое главное, сообщите только ONE , если вы используете эту строку, которая содержит слово string
дважды, но не 2 из обязательных слов.
$string = 'This string contains a string and other stuff!';