Top.Mail.Ru
Ответы
Аватар пользователя
7лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Foreach и поиск подстроки (PHP)

Имеется конструкция:

$message = $_GET['text'];
$messages_array = [
'чай' => "липтон",
'кофе' => "нескафе",
'сок' => "добрый"
];
foreach($messages_array as $k => $v)
{
if($message == $k){$otwet = $v;}
}

Работает только если $message полностью совпадает с $k
Как можно найти в $message слово, совпадающее с $k, если $message состоит из нескольких слов, чтобы эта конструкция работала без ошибок?
Например, чай в пакетиках, растворимый кофе.
С strpos не получилось, может, что-то неправильно делаю?
foreach($messages_array as $k => $v)
{
if (strpos($message, $k) === false){$otwet = 'пусто';}else{$otwet = $v;}
}

По дате
По рейтингу
Аватар пользователя
Новичок
7лет

Если в словах кириллица, то используй mb_strpos()

Аватар пользователя
Мудрец
7лет

Вы погуглите эту функцию, она же вроде возвращает индекс подстроки, а не булево значение