Lo stesso confronto si può fare con una sola riga di codice
$differenze = array_diff($array_piu_grande, $array_piu_piccolo);
ma funziona con l'esempio specifico, non con tutti.
Se per esempio hai
$stringa1 = "Questa è una prima stringa";
$stringa2 = "Questa è una seconda stringa";
ti direbbe solo "prima" oppure "seconda", dipende da come organizzi i confronti avendo la stessa lunghezza, invece la differenza sono entrambe le parole, non una sola.
Oppure
$stringa1 = "Questa è una prima stringa";
$stringa2 = "Questa è una seconda stringa più lunga";
Qui pur arrivando ad array di lunghezze differenti non hai il risultato corretto, perché ti perdi "prima" che sta nella prima stringa, ma non nella seconda.
Restando su questo tipo di approccio andrebbe fatto un confronto incrociato, una cosa del tipo
Codice PHP:
$array1 = explode(' ', 'Questa è una prima stringa');
$array2 = explode(' ', 'Questa è una seconda stringa più lunga');
$differenze = array_diff($array1, $array2);
$differenze = array_merge( $differenze, array_diff($array2, $array1));
// qui avrai tutte le parole diverse tra le due stringhe.
print_r($differenze);