Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zliczanie słów kluczowych
lalas
post 17.01.2011, 17:18:47
Post #1





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 16.09.2003

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


Witajcie
nakombinowałem się nawyszukiwałem i nic konkretnego nie znalazłem, podglądałem pluginy wordpressów ale tak pojechali obiektowo, że nie mogę się doszukać
...mam w bazie wpisy w tabeli z kolumna "słowa kluczowe" a w niej wyszczególnione słowa,

remonty, materiały budowlane, remonty Śląsk, remonty i rozbiórki

pętlą będę sprawdzał jakie słowa są w danym rekordzie, mogę wyodrębnić poszczególne słowa z ciągu, ale jak policzyć załóżmy ile razy zostało użyte dane słowo nie tylko w 1 rekordzie ale we wszystkich? jak policzyć ile razy zostało wpisane do wszystkich rekordów słowo załóżmy "remonty"?

jeżeli w jednym rekordzie będzie użyte 3 razy w innym 1 raz a w jeszcze innym 5razy

nie mam pomysłu jak zliczyć te słowa, sprawdzałem kilka funkcji ale w nich mamy do podania ciąg + szukane słowo, ale ja nie będę szukał konkretnych słów tylko wyświetlał je wszystkie... chciałem zrobić tak jak jest w katalogach i wordpressach - wyświetlić i wyróżnić słowa kluczowe najczęściej powtarzające się.

Ten post edytował lalas 17.01.2011, 17:21:34
Go to the top of the page
+Quote Post
kefirek
post 17.01.2011, 19:01:22
Post #2





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


  1. $str = 'remonty, materiały budowlane, remonty Śląsk, remonty i rozbiórki';
  2. echo '<pre>';
  3. print_r(array_count_values(str_word_count($str, 1, 'ąęłóżźśćńöĄĘŁÓŻŹŚĆŃ1234567890')));
  4. echo '</pre>';
Go to the top of the page
+Quote Post
lalas
post 19.01.2011, 14:38:00
Post #3





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 16.09.2003

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


podobne przykłady wyświetliłem z tym, ze bez polskich znaków....dzięki za ten przykład... tylko co ciekawe zrobiłem przykład 2 tablic połączyłem je ze sobą i w miejscu gdzie powtórzenia występują więcej niż 2x tam zamiast liczby wyśwetla się
Klucz: [pozyczki] - Array
dlaczego?

  1. $str1 = "pozyczki,kursy,szkolenia,pozyczki";
  2. $a1 = array_count_values(str_word_count($str1, 1, 'ąęłóżźśćńöĄĘŁÓŻŹŚĆŃ1234567890'));
  3.  
  4. $str2 = "remonty,malowanie,pozyczki";
  5. $a2 = array_count_values(str_word_count($str2, 1, 'ąęłóżźśćńöĄĘŁÓŻŹŚĆŃ1234567890'));
  6.  
  7. $tab = array_merge_recursive ($a1, $a2);
  8.  
  9. while ( list($key, $value) = each($tab) )
  10. {
  11. if ($value<2)
  12. {
  13. echo "Klucz: [$key] - $value<br>";
  14. }else
  15. {
  16. echo "<font color=red>Klucz: [$key] - $value</font><br>";
  17. }
  18. }



mało tego, jak teraz połączyć tablice jeżeli wszystko odbywa się w pętli w funkcji array_merge_recursive deklaruje jakie tablice ma połączyć a co w przypadku kiedy nie wiadomo ile będzie tablic? jak je wszystkie ze sobą połączyć żeby finalnie podsumować ilość występujących słów?

przypuszczalnie w petli:

  1. $str[$i] = "wczytane slowa z bazy danych";
  2. $a[$i] = array_count_values(str_word_count($str[$i], 1, 'ąęłóżźśćńöĄĘŁÓŻŹŚĆŃ1234567890'));


i teraz jak połączyć nie wiadomo ile tablic $a[]




zastanawiam sie tez na innym sposobem, zeby polaczayc wszystkie STRINGI w jeden w/g modelu
  1. $nowy = "$str1.$str2";



i nie moge wymyslic sposobu ktory polaczylby mi stringi w jeden jezeli nie wiem ile ich bedzie, moze jakies pomysly?

Ten post edytował lalas 19.01.2011, 14:37:50
Go to the top of the page
+Quote Post
Malinaa
post 19.01.2011, 19:27:06
Post #4





Grupa: Zarejestrowani
Postów: 518
Pomógł: 6
Dołączył: 21.07.2008

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


Tutaj jest temat, który powinien być pomocny: http://forum.php.pl/index.php?showtopic=164791&hl


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
lalas
post 20.01.2011, 12:54:15
Post #5





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 16.09.2003

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


dziękuje Ci, każde inne lub podobne rozwiązania się przydadzą, jednak borykam się teraz z wymyśleniem sposobu jak z pośród wybranych w PĘTLI rekordów połączyć je razem ze sobą i stworzyć jeden wielki string (może tablice) zawierający wszystkie wybrane słowa.

Ten post edytował lalas 20.01.2011, 12:54:58
Go to the top of the page
+Quote Post
thek
post 20.01.2011, 13:11:03
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




implode? smile.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
lalas
post 22.01.2011, 17:37:51
Post #7





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 16.09.2003

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


hmmm.. a bawilem sie wczesniej implode, a dopiero teraz jak ustawilem to zadzialalo, faktycznie da rade, ...dzieki

a co myślicie o sposobie aby nie wyodrębniał każdego słowa dosłownie jako odrębna fraza z ciągu:
"slowo kluczowe1, slowo kluczowe2, slowo kluczowe3"

WYNIK
slowo - 3
kluczowe1 - 1
kluczowe2 - 1
kluczowe3 - 1

TYLKO:
slowo kluczowe1 - 1
slowo kluczowe2 - 1
slowo kluczowe3 - 1

może, zamiast spacji wstawić "-", po podliczeniu słów usunąć go ponownie? czy będzie jakiś prostszy szybszy sposób?
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 16.04.2024 - 06:00