Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zliczanie słów kluczowych
Forum PHP.pl > Forum > Przedszkole
lalas
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ę.
kefirek
  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>';
lalas
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?
Malinaa
Tutaj jest temat, który powinien być pomocny: http://forum.php.pl/index.php?showtopic=164791&hl
lalas
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.
thek
implode? smile.gif
lalas
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?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.