Jestem zaskoczony. Sprawdziłem Twój kod na swoich przykładowych danych i (w mnie) powtórzenia się eliminują.
Podejrzenie: A może gdzieś
na początku pola masz spację?
(końcowe spacje nie powinny mieć znaczenia, bo baza danych je "obcina").
Dla sprawdzenia zmień pętlę na:
foreach ($rob as $tt) {
$aResults[] = array( "id"=>0, "value"=>$tt, "dlug"=>strlen
($tt)); }
i dla powtarzających się tekstów porównaj "dlug".
Edit:
Zrobiłem jeszcze eksperyment ze wstawieniem do tekstów polskich liter i widzę, że:
1. Domyślnym kodowaniem po mysql_connect(...) jest
latin1, natomiast ja mam i bazę i stronę w UTF-8.
Po otwarciu b.d. należy dać:
mysql_set_charset('utf8');2. Przekodowanie na małe litery trzeba robić przez
mb_strtolower($row2, 'UTF-8');Zwykła funkcja
strtolower(...) wstawia za polskie znaki "?".
Może już sam do tego doszedłeś, ale na wszelki wypadek - wspominam o tym.