Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Przeszukiwanie tablicy dwuwymiarowej, zwracanie klucza
ficiek
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 1
Dołączył: 9.09.2011
Skąd: Kraków

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


Niestety napotkałem problem z którym nie mogę sobie poradzić.

Tablica zbudowana jest w poniższy sposób. Przechowuje ona elementy znalezione w bazie MySQL, pasujące do podanych przez użytkownika słów. Każde podane słowo jest wyszukiwane osobno, podany tekst nie jest traktowany jako fraza.
  1. (
  2. [0] => Array
  3. (
  4. [id] => 1
  5. [header] => Artykuł
  6. [date] => 1317559793
  7. [relevance] => 1
  8. )
  9. )

Chcę jednak uniknąć powtórzeń. Można by łatwo uniknąć tego wykonując na tablicy array_unique(), ale jak zapewne ktoś się domyślił relevance przechowuje liczbę pasujących wyszukiwanych słów. Przy ich pomocy będzie można odpowiednio wyświetlić wyniki.

Przechodzimy do sedna: muszę wyszukać w takiej dwuwymiarowej tablicy czy wpisano już taki artykuł. Jeśli tak revelance+=1. Jeśli nie dodajemy do tablicy.
  1. if (w tablicy $found znajduje się wiersz w którym id=$foo)
  2. {
  3. $found[ten wiersz]['relevance']+=1;
  4. }
  5. else
  6. {
  7. dodajemy do tablicy;
  8. }


Nie udało mi się wykorzystać array_search, prawdę mówiąc nie jestem nawet pewien czy ta funkcja działa dla dwuwymiarowej tablicy. Jestem otwarty na inne rozwiązania całego procesu wyszukiwania.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Dominis
post
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 19
Dołączył: 13.02.2010

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


Kurcze, przynajmniej napisałbyś jak to zrobiles? za pomoca zapytania? Czy męczyłeś sie tablicami?

Jeśli za pomoca zapytania to mozesz zrobic:
  1. SELECT id_artykul, header, COUNT(*) AS rev FROM tabela GROUP BY id_artykul ORDER BY rev DESC


i odrazu masz posortowane, cud, miód i orzeszki.

Jeśli wybrałeś drogę trudniejsza, czyli bawisz sie tablicami to szukaj w google:

http://webhosting.pl/W.jaki.sposob.posorto...a.tablice.w.PHP
http://forum.php.pl/lofiversion/index.php/t20799.html

a najlepiej w manualu:

http://php.net/manual/en/function.array-multisort.php
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 11.10.2025 - 00:06