От страна на php има много опции за преброяване на ключовите думи във вашия масив. Ако имате нужда от допълнителна функционалност, като съвпадение без регистър или граници на думи какво ще кажете за използването на regex .
Идея с preg_match_all
$pattern = '~(?:yes|test)~i';
foreach($arr AS $k => $v)
$arr[$k]['match'] = preg_match_all($pattern, $v['title']." ".$v['msg']);
Моделът е просто редуване
от двете ключови думи с помощта на група без прихващане . След затварящия разделител на шаблон
~
използва i
флаг
за съвпадение без регистър. Regex101
е хубаво място за тестване на шаблон.
Ако въвеждането е общо, използвайте preg_quote
за избягване на определени знаци от специалното значение на регулярния израз.