![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 44 Dołączył: 17.02.2004 Skąd: Wieliczka Ostrzeżenie: (10%) ![]() ![]() |
Mam sobie na starcie pustą tablice
następnie chcę dodawać do niej kolejno elementy/klucze, kombinowałem tak:
z tym że mają one mieć przypisaną jakąś wartość np. 1: czyli tablica ma mieć postać
a ma postać
Czyli jak dodać klucz o zadanej nazwie i z zadaną wartością? Ten post edytował neverever 10.09.2007, 18:53:59 -------------------- neverever
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 44 Dołączył: 17.02.2004 Skąd: Wieliczka Ostrzeżenie: (10%) ![]() ![]() |
no racja
Mam więc teraz taki kod pseudo licznika słów oparty na tablicy -zasada jest prosta, rozbija string na słowa i sprawdza je kolejno czy są w tablicy, jeśli są - zwiększa im wartość o 1 , jeśli brak - tworzy dla nich nowy klucz:
Kłopot jednak z tym, że wszędzie jest 1 -nwet tam gdzie powinno być 2. A jeśli dla nowego klucza dam =0, to w pierwszym kluczu mam 0 zamiast 1 a w pozostałych są już właściwe wartości. Moje pytanie brzmi, jak uprościć ten kod? -czy da się zrobić by preg_match_all nie tworzył tablicy z pustymi indeksami? -jak zrobić żeby licznik zadział prawidłowo - klucze miały przypisane wartości odp. liczbie wystąpień danego słowa ok, problem pustych indeksów rozwiązany-dałem:
ale licznik nadal nie działa ok, bo dla wszystkich kluczy mam wartość 1 -tj jak wcześniej pisałem. jak to zmienić? Ten post edytował neverever 10.09.2007, 18:52:14 -------------------- neverever
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 8.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
w linijce 8 masz błąd...
powinno być Kod if($i!='') if(in_array($i,array_keys($tab))) $tab[$i]+=1; funkcja in_array sprawdza po wartościach tablicy... a Ty w wartościach masz liczbę wystąpień słowa... musisz sprawdzać czy dany klucz istnieje... mółgbyś też użyć funkcji array_key_exists() Kod if($i!='') if(array_key_exists($i,$tab)) $tab[$i]+=1; a żeby preg_match_all nie tworzył tablicy z pustymi indeksami zmień * na +... powinno pomóc... Ten post edytował tehn 10.09.2007, 19:12:56 -------------------- sidzina
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 44 Dołączył: 17.02.2004 Skąd: Wieliczka Ostrzeżenie: (10%) ![]() ![]() |
funkcja in_array sprawdza po wartościach tablicy... a Ty w wartościach masz liczbę wystąpień słowa... musisz sprawdzać czy dany klucz istnieje... faktycznie dałem array_key_exists() i jest juz wszystko wporzo, Dzięki!
mółgbyś też użyć funkcji array_key_exists() Ten post edytował neverever 10.09.2007, 20:36:14 -------------------- neverever
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 8.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
poczytaj w manualu o funkcji mb_convert_encoding i ustaw kodowanie textu i pliku na takie same...
-------------------- sidzina
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 05:05 |