Hallo steffi,
Was die Gross/Kleinschreibung angeht, steht dir ab PHP 5 stripos() zur Verfuegung, aber wenns nicht anders geht, musst du natuerlich einen Regex benutzen, der waere dann \b fuer die Wordboundaries gefolgt vom Wort gefolgt von \b, also \bdaswort\b. Du koennstest zB. alle Synonymarrays wieder in ein Array anordnen und durch dieses dann durschleifen. In jedem Durchgang haettest du also ein Synonymarray.
Deinen Text explodest du ebenfalls am Leerzeichen und schleifst dann in jedem Durchgang durch das so entstandene Array. Ob das performant ist, musst du selbst testen.
Gruß,
Dieter