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
ficiek
post
Post #2





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

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


Zanim zadałem pytanie przeczytałem w necie na ten temat (w tym to co podałeś) i nic. Dziwi mnie to bo prawdopodobnie jest to banalne.

Co do rozwiązania to wykonuję jedno zapytanie które szuka wszystkich słów, a potem w PHP obliczam trafność dla danego artykułu. Po prostu pomimo przeczytania manuala i masy stron internetowych nie mogę posortować tablicy z wynikami po relevancy. Wygląda ona tak jak podałem w pierwszym poście.
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: 7.10.2025 - 18:59