Om du har en en tabelle med ett ord per rad behöver du inte (själv) iterera över den. En SQL fråga löser det.
Kod:
SELECT kategori_id, COUNT(*) as cnt FROM words WHERE 0 != INSTR(din_text, word) GROUP by kategor_id order by cnt DESC
Då låter du iaf databasen göra jobbet åt dig vilket troligen är bättre än att göra samma sak i PHP.