![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 1.07.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam plik log.txt zawierający logi urządzenia w postaci: (...) ||24.06||201||14||1|| ||24.06||201||15||1|| ||25.06||201||16||2|| ||27.06||201||17||2|| ||27.06||201||18||4|| ||27.06||201||19||3|| ||28.06||201||20||0|| ||29.06||201||21||0|| ||29.06||201||22||0|| ||29.06||201||23||1|| ||30.06||201||00||0|| ||30.06||201||01||0|| (...) Pierwsza kolumna to wartości oznaczajace dni miesiąca, w których urządzenie wykonało daną akcję. Zdaża się, że czasem urządzenie wykonuje akcję kilka razy w ciągu jednego dnia, a w innym dniu nie wykonuje jej wcale. Muszę wyświetlić na stronie wszystkie dni, w których urządzenie zadziałało - bez względu na to czy raz, czy więcej razy. Efekt, który chciałbym osiągnąć do powyższych przykładowych wartości to: 24.06 25.06 27.06 28.06 29.06 30.06 Oczywiście wiem o istnieniu funkcji pozwalających na pocięcie linii tak, by wyświetliło tylko potrzebną kolumnę danych i wiem o funkcji usuwającej duplikaty, ale walczę z tym od dłuższej "chwili" i nie mogę zlepić z tego w poprawnie działający kod. Z góry dzięki za pomoc:) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 172 Pomógł: 27 Dołączył: 5.10.2013 Ostrzeżenie: (0%) ![]() ![]() |
1. Pobierasz zawartość pliku i korzystając z explode, robisz z tego tablicę dwuwymiarową.
2. Korzystając z array_column (jeżeli masz PHP < 5.5, definiujesz tę funkcję tak jak np. proponuje tu użytkownik), pobierasz samą pierwszą kolumnę z dniami: 3. Usuwasz duplikaty, korzystając z array_unique. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Alternatywa to otworzenie pliku np. wykorzystując np. bibliotekę SPLFileObject, pobieranie w pętli każdej linii (przykład 1), wyciąganie z niej daty i dodawanie do tablicy jeśli nie istnieje, albo jak u przedmówcy dodawanie wszystkiego, a na końcu array_unique.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 1.07.2015 Ostrzeżenie: (0%) ![]() ![]() |
Panowie, w teorii ja to wszystko wiem, tyle że mam problem ze złożeniem tego w jeden działający skrypt. Gdzieś robiłem błąd, możliwe ze gdzieś w skadni i mimo wielu prób skrypcik sie "wykrzaczał" na wszyskie, możiwe sposoby - trafił więc do kosza. Potrzebowałbym od Was pomocy w postaci gotowca, którego mógłbym przeanalizować - tak żebym wiedział gdzie robiłem błąd. To co ja napisałem niestety juz poleciało do smieci, więc nie mam jak wrzucić tutaj. Skrypt niby banalny, ale przysporzył mi troche problemów i przez niego utknąłem w miejscu..
Pozdr. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 550 Pomógł: 75 Dołączył: 5.06.2012 Skąd: Lębork Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 172 Pomógł: 27 Dołączył: 5.10.2013 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem, w czym tu jest problem... |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 1.07.2015 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki tomxx, po kilku modyfikacjach pomogło i rozwiązało mój problem. Wiem też co robiłem źle wcześniej.
Cytat Nie wiem, w czym tu jest problem... Gdyby nie było tu problemu (dla mnie) to nie byłoby tego tematu. Dzięki również dla pozostałych ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 16:20 |