Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Statystyka Znaków Zodiaku
Forum PHP.pl > Forum > PHP
bartekmedon
Mami takie zadanko :

Napisać stronę, która na podstawie pliku tekstowego CSV o formacie nazwisko,data_urodzenia wyświetli statystykę występowania znaków zodiaku

Generalnie nic trudnego ale zastanawiam się nad jakimś szybkim i prostym rozwiązaniem. Zrobiłem to ale kod jest dość "skomplikowany" , po prostu może ktoś ma pomysł na zrobienie tego króciutko, łatwo i przyjemnie bo sam jestem ciekawe innych metod na to zadanie niż moja ( nie pokazuje jej teraz bo nie piszę ze swojego komputera ).

Jestem ciekawe sugestii pozdrawiam

P.S. Aha w pliku data przyjąłem, że jest w formiecie : YYYY-MM-DD .
bełdzio
wyciągasz date urodzenia a konkretnie dzień i miesiąc i cała filozofia się kończy smile.gif
mike
1. Zadań domowych nie odrabiamy.
2. Sprytnie, ale nic nie dostaniesz dopóki nie pokażesz że choć trochę się postarałeś, będziesz u siebie to prześlesz mi swoje rozwiązanie żebym wiedział ze nie oszukujesz. Wtedy otworzę wątek. Do tego czasu zamykam.

------------------
Otwieram, autor dosłał swoje rozwiązanie:
http://soundpage.info/php_lab/lab3-2.php
bartekmedon
Dziękuje za odblokowanie jestem ciekaw innych sposobów rozwiązania pozdrawiam
Darti
podszedłem do tego tak:
  1. <?php
  2. $znaki = array(
  3. 'Koziorożec' => '20.01',
  4. 'Wodnik' => '18.02',
  5. 'Ryby' => '20.03',
  6. 'Baran' => '20.04',
  7. 'Byk' => '21.05',
  8. 'Bliźnięta' => '21.06',
  9. 'Rak' => '22.07',
  10. 'Lew' => '23.08',
  11. 'Panna' => '22.09',
  12. 'Waga' => '23.10',
  13. 'Skorpion' => '22.11',
  14. 'Strzelec' => '21.12',
  15. '13' => '31.12'
  16. );
  17.  
  18. $handle = fopen("plik.csv", "r");
  19. while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
  20. $data_urodzenia = explode('-',$data[1]);
  21. foreach ($znaki as $znak => $data){
  22. $dzien = explode('.',$data);
  23. if(mktime(0,0,0,$data_urodzenia[1],$data_urodzenia[2]) <= mktime(0,0,0,$dzien[1],$dzien[0])){
  24. $znak == 13 ? $statystyka['Koziorożec']++ : $statystyka[$znak]++;
  25. break;
  26. }
  27. }
  28. }
  29. fclose($handle);
  30.  
  31. echo '<table border=1><tr><th>Znak</th><th>Ilość wystąpień</th>';
  32. arsort($statystyka);
  33. foreach ($statystyka as $key => $value){
  34. echo "<tr><td>{$key}</td><td>{$value}</td></tr>";
  35. }
  36. echo '</table>'
  37. ?>
bartekmedon
Darti - super bardzo dobre rozwiązanie, sam myślałem nad wykorzystaniem funkcji mktime ale coś mi nie chciało działać poprawnie więc zrobiłem jak zrobiłem.
Dzięki serdeczne za odpowiedź pozdrawiam
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.