Ponieważ tekst wprowadzany może być wprowadzony w różny sposób (pisownia, przecinki, spacej, znaki specjalne), wydzielam poszczególne wyrazy do tablicy i ją chcę porównać z tekstem w bazie (wpisanym w równie dowolny sposó

Mam "Selecta" i pętlę while. W pętli while musze rozbić tekst pobrany z bazy na tablicę i porównywać jej kazdy element z każdym elementem tablicy wprowadzonej.
Wyglądać to będzie mniej więcej tak:
wydzielenie wprowadzonego tekstu do $wyrazy_wprowadzone SELECT .... .... WHILE $row .... { .... wydzielenie wyrazów z $row['text'] do tablicy $wyrazy_w_bazie foreach $wyrazy_w_bazie { foreach $wyrazy_wprowadzone { if $wyrazy_wprowadzone = $wyrazy_w_bazie - ustawienie flagi przetworzonej po pętlach czyli dowolny wyraz wprowadzony już jest gdzieś w bazie } } }
Pytanie: Czy to poprawna konstrukcja? Czy da się to zrobić inaczej, optymalniej?