Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [wolontariat] - sortowanie danych z pliku
djdahu
post 20.08.2018, 01:05:26
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 1.07.2015

Ostrzeżenie: (0%)
-----


Hej,
Na wstępnie zaznaczę, że przeglądałem forum to i wiele innych, szukałem info u wujka googla, ale nie znalazłem dokładnie tego co potrzebuję, a jedynie zlepek informacji, których z którymi nie mogę sobie poradzić i poskładać w działającą całość
Otóż, mam problem z posortowaniem danych, które odczytuje z pliku tekstowego.

Dane w pliku txt mają format:

||ap1||restart||2||14||lokalizacja-rf3||
||ap2||restart||0||14||lokalizacja-rf34||
||ap4||awaria||4||14||lokalizacja-rf19||
||ap4||start||1||14||lokalizacja-rf23||
||ap1||restart||5||14||lokalizacja-rf3||
||ap4||start||4||14||lokalizacja-rf23||

gdzie:
kolumna 1 to nr urządzenia
kolumna 2 to akcja urządzenia
kolumna 3 to nr dnia tygodnia (0-6 / 0- niedz., 1-pon., itd.) wystąpienia akcji
kolumna 4 to godzina wystąpienia akcji (1-24)
kolumna 5 to lokalizacja


Dane do tej pory odczytywałem tak (w skrócie):

  1.  
  2. $file_pod = "data/log.txt";
  3. $file_p = file($file_pod);
  4. $file_p = array_reverse($file_p);
  5. $total_p = count($file_p);
  6. for($i=0; $total_p > $i; $i++){
  7. $line_p = explode("||", $file_p[$i]);
  8. echo $line_p[1].' - '.$line_p[2].' - '.$line_p[3].' - '.$line_p[4].' - '.$line_p[5].'<br>';
  9. }
  10.  




Niestety danych zrobiło się sporo i potrzebuję filtrowania oraz sortowania.
Chcę by wynikiem działania były rekordy (wyświetlone w ten sam sposócool.gif tylko z danego wybranego dnia (zmienna),
posortowane godzinami od najwcześniejszych do najstarszych.

Będę wdzięczny jeśli ktoś rozbudowałby ten kod tak, by spełniał te dwa założenia.

Z góry dziękuję za pomoc.



Go to the top of the page
+Quote Post
nospor
post 20.08.2018, 11:26:38
Post #2





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Do filtrowania tablicy
http://php.net/manual/en/function.array-filter.php

Do sortowania
http://php.net/manual/en/function.usort.php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
djdahu
post 20.08.2018, 13:18:54
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 1.07.2015

Ostrzeżenie: (0%)
-----


nospor ..dzięki, manuale już przeglądałem, ale nie wiele mi to pomogło. Tak jak napisałem, mam problem ze złożeniem tego w działającą całość.. próbowałem dzielić tablice zawierające kolumny na kolejne tablice, próbowałem użyć "asort", "ksort", usort, multisort i paru innych opcji w różnych konfiguracjach, ale albo nie dawało to oczekiwanego przeze mnie efektu, albo w ogóle nie działało (najprawdopodobniej przez moje błędy).

Nie mogę sobie poradzić ze złożeniem sensownego kodu, bo na co dzień nie zajmuję się php, tylko jestem serwisantem i jedynie chcę stworzyć sobie narzędzie, które ułatwi mi pracę. O php mam wiedzę jedynie bardzo podstawową, dlatego wątek założyłem w dziale przedszkole i bez ściemniania proszę o gotowca, który rozwiąże mój problem.
Z góry dzięki.
Go to the top of the page
+Quote Post
nospor
post 20.08.2018, 13:41:34
Post #4





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Cytat
dlatego wątek założyłem w dziale przedszkole i bez ściemniania proszę o gotowca, który rozwiąże mój problem.

A widzisz, to nie przedszkole a gielda ofert. Przenosze


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
djdahu
post 21.08.2018, 16:01:12
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 1.07.2015

Ostrzeżenie: (0%)
-----


Sorry, rzeczywiście mój błąd.. posta wrzucałem w środku nocy:)

Czy koś może spróbować pomóc?
Walczę kolejny dzień i nie radzę sobie z tym co_jest.gif
Go to the top of the page
+Quote Post
nospor
post 21.08.2018, 16:17:12
Post #6





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Jesli oczekujesz pomocy a nie gotowca to pokaz co tak dzielnie probowales przez ten CALY dzien. Ciezko mi sobie wyobrazic jak przez caly dzien mozna walczyc z array_filter smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
djdahu
post 21.08.2018, 16:38:36
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 1.07.2015

Ostrzeżenie: (0%)
-----


Jestem w pracy (raczej do późnych godzin nocnych) i nie mam teraz przy sobie prywatnego komputera wiec nie mam jak pokazać moich wczorajszych "wypocin".
Akurat z array_filter nie miałem aż takiego problemu, bo względnie filtrowało to tak jak oczekiwałem, ale za to mam spory problem z posortowaniem już odfiltrowanych danych.
..tzn tak, jak pisałem wcześniej próbowałem użyć różnych funkcji z rodziny sort() ..ale, albo sortowało nie tak jak trzeba, albo nie sortowało całości względem danej kolumny, a tylko samą pojedynczą kolumnę, albo w ogóle nie sortowało..

Wiem, że dla kogoś kto w tym siedzi zapewne jest to banalne, ale to tak trochę jak ja bym wyskoczył z pytaniem "ile możesz się męczyć z kalibracją intermodulatora kluczującego w swoim AP?" ..gdzie zapewne zdecydowana większość ludzi z forum nie miała by nawet pojęcia o czym mowa biggrin.gif Zabawę z PHP dopiero co zacząłem i stawiam pierwsze kroki, ale w tym wypadku nie mam nawet zbytnio możliwości na uczenie się od podstaw pisania tego skryptu, bo przez jego brak nie mam nawet czasu na uczenie się.

Jeśli masz czas, to może chociaż postaraj się naprowadzić mnie na to krok po kroku, jak powinienem się do tego zabrać.

Z góry dzięki wielkie smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 22:07