Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie według daty.
Forum PHP.pl > Forum > PHP
drugsxxx
Witam posiadam taki oto kod który wyświetla mi ile razy w pliku .txt pojawił sie dany kierunek.

  1. $getText = file_get_contents("Kier.txt", true);
  2. $Poln = substr_count($getText ,"Polnoc");
  3. $PolnW = substr_count($getText ,"Polnocny-Wschod");
  4. $Wsch = substr_count($getText ,"Wschod");
  5. $PoldW = substr_count($getText ,"Poludniowy-Wschod");
  6. $Pold = substr_count($getText ,"Poludnie");
  7. $PoldZ = substr_count($getText ,"Poludniowy-Zachod");
  8. $Zach = substr_count($getText ,"Zachod");
  9. $PolnZ = substr_count($getText ,"Polnocny-Zachod");
  10. $getPoln = $Poln - $PolnW - $PolnZ ;
  11. $getPold = $Pold;
  12. $getZach = $Zach - $PoldZ - $PolnZ ;
  13. $getWsch = $Wsch - $PoldW - $PolnW ;
  14.  
  15. echo "Polnoc =". $getPoln;
  16. echo "<br>";
  17. echo "Polnocny-wschod =". $PolnW;
  18. echo "<br>";
  19. echo "Wschod =". $getWsch ;
  20. echo "<br>";
  21. echo "Poludniwy-Wschod =". $PoldW ;
  22. echo "<br>";
  23. echo "Poludnie =". $getPold ;
  24. echo "<br>";
  25. echo "Poludniwy-Zachod =". $PoldZ ;
  26. echo "<br>";
  27. echo "Zachod =". $getZach ;
  28. echo "<br>";
  29. echo "Polnocny-Zachod =". $PolnZ ;


w pliku natomiast dane sa zapisywane w taki sposbób

2011-11-14 15:39:51,Polnoc
2011-10-13 15:41:54,Polnocny-Wschod
2011-10-14 15:43:04,Wschod

I teraz szukam sposbu by ograniczac pokazywanie ile razy kierunki się pojawiły wtaki sposób by wyświetlał dane z ostatniego misiącą, ostatniego tygodnia i z dnia. Ma ktoś jakis pomysł jak sie do tego zabrac??
Pawel_W
pobrać plik wiersz po wierszu, datę zamienić na wartość unixową, następnie posortować i gotowe smile.gif
drugsxxx
Hmm czy to oznacza że musiał bym zmienic cały spub w jaki aktualnie są wyswietlane dane?? Chodzi mi o pierwsza cześć przedstawionego przez mnie kodu??

Dodatkowo dane w pliku nie zawsze wystepują dzień po dniu czasmi pomiar jest dokonywany raz na kilka dni.
Pawel_W
tak jak napisałem, sortujesz a potem przelatujesz pętlą while po posortowanych z warunkiem, że data > time() - x * 24 * 3600 (x to liczba dni)
drugsxxx
Dzięki za odpowiedz.

Czyli to porównanie stringów mogło by zostac tylko dać przed nimi warunek ze jeśli występuje w ciągu np. dany miesiąc to dopiero czytasz tak??

Dał byś radę może dać przykład kodu?? Nie jestem az tak dobry w php sad.gif
Pawel_W
file pobierasz plik (jeżeli jest on duży to poradziłbym Ci lepsze rozwiązanie z użyciem fopen ale nie chcę na razie mieszać
następnie pętla for, explode żeby otrzymać datę, strtotime żeby zamienić ją na unix, potem sortujesz po dacie i robisz to co opisałem wcześniej
drugsxxx
Zrobiłem coś takiego i wyświetla mi kierunki zaistniałe ostatniego misiąca,tygodnia,dnia:

  1. $lines = file('Kier.txt');
  2. $monthlist = "";
  3. $weeklist = "";
  4. $daylist = "";
  5. foreach($lines as $line){
  6. $r = explode(",",$line);
  7. if(strtotime($r[0]) > strtotime('-1 month'))$monthlist .= "\n\t<li>{$r[1]}</li>";
  8. if(strtotime($r[0]) > strtotime('-1 week'))$weeklist .= "\n\t<li>{$r[1]}</li>";
  9. if(strtotime($r[0]) > strtotime('-1 day'))$daylist .= "\n\t<li>{$r[1]}</li>";
  10. }
  11. if($monthlist !="")$monthlist = "\n<ul>$monthlist\n</ul>";
  12. if($weeklist !="")$weeklist = "\n<ul>$weeklist\n</ul>";
  13. if($daylist !="")$daylist = "\n<ul>$daylist\n</ul>";
  14. //....
  15. ?>
  16.  
  17. <h3>DAYLIST</h3>
  18. <?php echo $daylist;?>
  19. <h3>WEEKLIST</h3>
  20. <?php echo $weeklist;?>
  21. <h3>MONTHLIST</h3>
  22. <?php echo $monthlist;?>


Teraz tylko chcial bym by pokazywał mi ile razy w nich wystepuja dane kierunki tak jak w kodzie ktróry pokazałem na początku czy mozna je połączyc??
Pawel_W
robisz to samo co wcześniej, tylko $getText nie zawiera zawartości pliku a zmienną z listą smile.gif
drugsxxx
Tak myślałem wlaśnie pokombinuje i cos wyjdzie biggrin.gif Dzieki za pomoc biggrin.gif
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.