Si tus array los tienes como en el ejemplo, es decir, que la primera palabra siempre es el objeto y las siguientes son sus atributos te servirá el ejemplo que te acabo de hacer. Para entender mejor lo que acabo de decir, en este caso "casa" es un ejemplo de objeto y sus atributos son valores únicos, porque es "grande" y no todas las casas són grandes, ¿entiendes?. Observa el ejemplo y veras porque es importante lo que te acabo de mensionar:
Código PHP:
<?php
$tabla1 = array ('casa pekeña', 'arbol grande', 'edificio azul', 'auto amarillo' , 'espejo mediano');
$tabla2 = array ('casa chica', 'edificio rojo', 'espejo grande', 'avion grande', 'planta pekeña');
foreach ( $tabla1 as $valores )
{
$partes = explode ( " ", $valores); // el que nos interesa es la primera palabra ya que es un objeto $partes[0]
$coincidencias = "";
foreach ( $tabla2 as $valor )
{
$busca = strpos ( $valor, $partes[0] ); // buscamos la primer palabra en el segundo array
if ( $busca === false ) // si no se encontro coincidencia continuamos
continue;
else // si encontro coincidencia añadimos estas a la variable $coincidencias
{
$coincidencias .= " ".$valor;
}
}
if ( $coincidencias != "" ) // si la variable $coincidencias esta vacia entonces no hubo estas
echo $valores." Coincide con: ".$coincidencias."<br/>";
else // si hubo coincidencias mostramos con cuales
echo $valores."<br/>";
}
?>
Espero haberme dado a entender y que te sirva por lo menos para darte una idea. Suerte