![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 8.11.2003 Skąd: z domu... Ostrzeżenie: (0%) ![]() ![]() |
Posiadam dwa pliki arts_cat.txt i plik arts.txt. Chciałbym wyświetlić
zawartość pierwszego pliku i odpowiednio policzyć dla niego stringi z drugiego pliku. Wygląda to tak: Pierwszy: dzial||nazwa||opis|| Plik arts_cat.txt: 1||Ogólny||Opis 1.|| 2||Wydarzenia||Opis 2.|| 3||Imprezy||Opis 3.|| Drugi: kto||Tytul||Tresc artu||data||dzial|| Plik arts.txt: joshua||test||oto test||10.01.2006||1|| si6||test2||oto test2||14.01.2006||3|| kozi||test3||oto test3||12.01.2006||2|| joshua||testxx||oto testxx||13.01.2006||1|| jareq||tescior||oto gut test||11.11.2006||1|| Kod który wyświetla działy: [php:1:41112f028e] for($i=0;$i<$art_cat_file_c;$i++){ $string = explode("||", $art_cat_file[$i]); echo "ID: $string[0] // Nazwa: $string[1] // Opis: $string[2] //"; } [/php:1:41112f028e] I wszystko ok. Ale np. chciałbym wyswietlić ilość artów w dziale: Np. ID: 1 // Nazwa: Ogólny // Opis: Opis 1. // Ilość: 3 Ilość ta sumowana by była z pliku arts.txt(string 4). Mam coś takiego, ale to jest źle: [php:1:41112f028e] $art_cat = "arts_cat.txt"; $art_cat_file = file($art_cat); $art_cat_file_c = count($art_cat_file); $arts = "arts.txt"; $arts_file = file($arts); $arts_file_c = count($arts_file); for($i=0;$i<$art_cat_file_c;$i++){ $split = explode("||", $art_cat_file[$i]); for($in=0;$in<$arts_file_c;$in++){ $lite = explode("||", $arts_file[$in]); if($lite[6] == $split[0]){ $count++; } else { $count = 0; } } echo "ID: $split[0] // Nazwa: $split[1] // Opis: $split[2]. // Ilość: $count"; } [/php:1:41112f028e] Wyświetla mi wszystko dobrze(tylko 1 dział dobrze podlicza), lecz następne działy zawsze mają wartość $count równą 1. Co jest? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 8.11.2003 Skąd: z domu... Ostrzeżenie: (0%) ![]() ![]() |
Oto ostateczny kod, może się komuś przyda:
[php:1:080031a910] $arts = file("arty.txt"); $arts_c = count($arts_file); $art_cat = file("catalogi.txt"); $art_cat_c = count($art_cat_file); $tab = array(); for($c=0;$c<$arts_c;$c++){ $split_c = explode("||", $arts[$c]); $tab[] = $split_c[6]; } $ilosci = array_count_values($tab); for($b=0;$b<$art_cat_c;$b++){ $split_b = explode("||", $art_cat[$b]); if($ilosci[$split_b[0]] == ""){ $ilosci[$split_b[0]] = "0"; } echo "ID: ". $split_b[0] ." // Nazwa: ". $split_b[1] ." // Opis: ". $split_b[2] ." // Ilość: ". $ilosci[$split_b[0]]. "<br>"; } [/php:1:080031a910] I dodatkowe pytanie, co jest bardziej ekonomiczne(w przypadku sprawdzania pliku, linia po linni) funkcja foreach, czy for? Oczywiście wszystko działa, więc punkt dla FiDo, thx. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 14:32 |