Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Usuwanie zduplikowanych wierszy z tablicy
-Mesajah-
post
Post #1





Goście







Witam,

Mam taki kodzik:

  1. $query = $_GET['query']." ".$_GET['field_name']." LIKE '".mysql_real_escape_string($input)."%'";
  2.  
  3. if($limit > 0) $query .= " LIMIT $limit";
  4.  
  5. $result = mysql_query($query, $link);
  6.  
  7. while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  8. $row2=$row[$_GET['field_name']];
  9. $row2 = str_replace('-', '', $row2);
  10. $aResults[] = array( "id"=>0,"value"=>strtolower($row2));
  11. }



W $aResults[] (po translacji strlower) pojawiają mi się zdublowane rekordy.
Chciałbym pozbyć się wszystkich powtórzeń i zostawić tylko unikalne elementy.
Jak to zrobić najlepiej ?

BTW A czy można w zapytaniu użyć distincta który jest case insensitive ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Valdi_B
post
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 30
Dołączył: 19.02.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Przeoczyłem, że elementami $aResults nie są "zwykłe" stringi, ale tablice.

Proponuję taką kolejność:
1. W pętli dodawaj do innej tablicy (np. $rob) same stringi:
  1. $rob[] = strtolower($row2);

2. Po pętli usuń powtórzenia:
  1. $rob = array_unique($rob);

3. Dopiero wtedy pobieraj z $rob kolejne stringi i zmontuj tablicę - wynik:
  1. foreach ($rob as $tt) {
  2. $aResults[] = array( "id"=>0,"value"=>$tt);
  3. }


Ten post edytował Valdi_B 5.03.2011, 11:03:25
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 17:30