Se me ocurre algo así:
Código PHP:
$palabrasArray = array('perra','gata');
$cadena = 'la perra corre a una gata';
$palabrasCadena = explode(" ",$cadena); // Separamos la cadena por los espacios
foreach($palabrasCadena as $valor)
{
// Verificamos si esta palabra de la cadena existe en el $palabrasArray
// (quitamos espacios atras y adelante de la palabra con la función trim)
if (in_array(trim($valor),$palabrasArray))
$coincidencias[] = $valor; // Si coincide guardamos la palabra en coincidencias
}
Te quedaron todas las coincidencias en el array "coincidencias".
Saludos