Se il primo array è composto da una sola parola e se il secondo è privo di punteggiatura allora potresti fare come da esempio senza ricorrere alle regexp.

Codice PHP:
<?php 
$kw 
= array();
$kw[] = 'patto';
$kw[] = 'pluto';
$ls = array();
$ls[] = 'l impatto è stato violente';
$ls[] = 'il patto dei lupi';
$ls[] = 'oddio il plutonium';
$ls[] = 'il cane di topolino si chiama pluto in Francese';
$count_kw count($kw);
$count_ls count($ls);
foreach(
$kw as $keyword) {
 print 
"current keyword = $keyword</br>";
 
$keyword1 ' '.$keyword.' ';
 
reset($ls);
 foreach(
$ls as $key => $phrase) {
  
$phrase1 ' '.$phrase.' ';
  if (
$phrase1 != str_ireplace($keyword1,"",$phrase1)) {
   print 
"&nbsp;&nbsp;<strong>scelto : '$keyword' in '$phrase'</strong><br/>";
   
//---- scelto allora lo tolgo dalla lista
   
unset($ls[$key]);
  } else {
    print 
"&nbsp;&nbsp;scartato : '$keyword' in '$phrase'<br/>";
  } 
//
 
}
}
?>