мой вызов описан в следующем примере: приведена комбинация ключевых слов «игровой ноутбук».PHP проверить, есть ли два слова в строке
Я хочу проверить, происходят ли два слова в строке. Наша задача в том, что строка может выглядеть следующим образом:
«Хороший игровой ноутбук» «ноутбук для игр» «ноутбука для экстремальных игр»
Я хочу, чтобы моя функция возвращает истину для всех трех строк , Существует толерантность в 3-4 слова, которая может быть между комбинацией слов, и, как показывают примеры, я хочу, чтобы она работала, если ключевые слова переключаются.
Так что мой подход был следующим, но это не похоже на работу:
$keyword = strtolower("gaming notebook");
$parts = explode(" ", $keyword);
$string = strtolower("Which notebook for good gaming performance");
//point to end of the array
end($parts);
//fetch key of the last element of the array.
$lastElementKey = key($parts);
//iterate the array
$searchExpression = "";
foreach($parts as $k => $v) {
if($k != $lastElementKey) {
$searchExpression .= $v . "|";
} else {
$searchExpression .= $v;
}
}
if(preg_match_all('#\b('. $searchExpression .')\b#', $string, $matches) > 0) {
echo "Jep, keyword combination is in string";
} else {
echo "No, keyword combination is not in string";
}
ли допуск требование? –
Эй, Робби, да, это должно возвратиться, даже если одно или два слова (или 20 символов) находятся между двумя ключевыми словами. –