![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 5.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam takie pytanie, jak zlikwidować podwójne wyniki z wyszukiwania z 2 wyszukiwarek? Znalazłem funkcje array_unique, ale jakos nie wiem jak ją zastosować w moim przypadku. Skrypt pobiera wyniki wyszukiwania z google i yahoo sw JSON, dekoduje i wyswietla na ekranie, ale sa podwójne wpisy, jak uzyc tej funkcji aby je zlikwidować?
Tablica moja: $phpobj2 = $json->decode($response); $phpobj3 = $json->decode($response2); $i = 0; $search_results = array(); foreach($phpobj2->responseData->results as $r) { $search_results['results'][$i]['title'] = $r->title; $search_results['results'][$i]['url'] = $r->url; $search_results['results'][$i]['content'] = $r->content; $i++; } foreach($phpobj3->ResultSet->Result as $t) { $search_results['results'][$i]['title'] = $t->Title; $search_results['results'][$i]['url'] = $t->Url; $search_results['results'][$i]['content'] = $t->Summary; $i++; } Ten post edytował zimack 25.01.2009, 14:29:46 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy to dobry pomysł, ale może coś w tym stylu:
w ten sposób wykluczysz takie same url w wynikach (może jeszcze jakiś if i isset() żeby nie przypisywać na nowo wartości w tablicy). Nie napisałeś czy wszystko (url, title, content) ma być unikalne. Ten post edytował ziqzaq 25.01.2009, 14:46:02 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 5.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Twój pomysł z wymazaniem tego spowoduje, ze nie wyswietlą sie linki w ogole, a nie o to chodzi. Mi chodzi o to, ze 2 wyszukiwarki zwracaja 16 wyników, wśrod nich są np. 4 takie same, wiec powinnien wyswietlic 12 wyników, bo 4 sie powtarzaja
![]() A co do Twojego pytania, to title, url i content maja unikalne ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dostajesz 16 wyników. Każdy wynik ma url (ja oparłem się na url jako unikalnym, jeden wynik, jeden url).
Jeśli zrobimy to moim sposobem to wyniki o takim samym url będą się niwelować, tak? - Tablica asocjacyjna gdzie klucze to urle, jak przypisujesz nowy url taki sam jak stary to w tablicy zostaje i tak tylko jeden. Cytat Twój pomysł z wymazaniem tego spowoduje, ze nie wyswietlą sie linki w ogole A jak je wyświetlasz? Mój kod zmienia strukturę tej twojej tablicy ($search_results). Zmieniłeś sposób jej wyświetlania? Cytat A co do Twojego pytania, to title, url i content maja unikalne Jak mają unikalne skoro piszesz, że ci się powtarzają? Edit: Może czegoś nie łapię, fakt. Niedziela mózg nie rozgrzany itd... ![]() Ten post edytował ziqzaq 25.01.2009, 15:10:21 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 5.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Dostajesz 16 wyników. Każdy wynik ma url (ja oparłem się na url jako unikalnym, jeden wynik, jeden url). Google zwraca 8 wyników, Yahoo 10 wyników. Wpisując dane słowo do wyszukiwarki, zdaża się, ze w 1 albo 2 znajdzie te same URL. Np. nasza klasa, to w Google zwróci wynik www.nasza-klasa.pl i w Yahoo to samo. Zwróci 18 wyników w sumie, ale wśród nich bedą 2 te same www.nasza-klasa.pl , chcialbym aby zwrócił 17 wyników, bez tego co sie powtórzył ![]() Teraz powinnieneś zajarzyć o co mi chodzi ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Coś mi się widzi, że jednak zajarzyłem od samego początku.
A to jest unikalne czy nie (tylko nie wnikaj w to, że wyniki mam w tablicach - tak było szybciej)?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 5.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Na priv wyslałem Ci wiadomosc z moim kodem, moglbys to sprawdzic? Tam jest wlasnie zapytanie Nasza-klasa, zwraca ono jako 1 wynik www.nasza-klasa.pl i jako 9 wynik znów jest www.nasza-klasa.pl. 1 wynik jest z google, 2 z yahoo. Chodzi mi, zeby tylko 1 byl wyswietlany.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 10:04 |