No lado do php, existem muitas opções para contar as palavras-chave em seu array. Se você precisar de funcionalidades adicionais, como correspondência sem maiúsculas e minúsculas ou limites de palavras que tal usar regex .
Uma ideia com
preg_match_all
$pattern = '~(?:yes|test)~i';
foreach($arr AS $k => $v)
$arr[$k]['match'] = preg_match_all($pattern, $v['title']." ".$v['msg']);
O padrão é simplesmente uma alternância das duas palavras-chave usando um grupo sem captura . Após o fechamento do delimitador de padrão
~
usou o i
bandeira
para correspondência sem maiúsculas e minúsculas. Regex101
é um bom lugar para testar o padrão. Aqui está uma demonstração em eval.in
Se a entrada for genérica, use
preg_quote
para escapar certos caracteres de seu significado regex especial.