![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 11.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Proszę o pomoc w rozwiązaniu następującego problemu. Do bazy MySQL zapisuję co 1 minutę wynik pomiaru wilgotności powietrza. Za pomocą skryptu php pobieram dowolną ilość danych np. 17 i koduję je do formatu JSON. Skrypt, który napisałem działa bardzo dobrze.
skrypt Chciałbym jednak zmienić jego działanie, ale nie bardzo wiem jak podejść do tematu. Założenia algorytmu: 1. Pobieram z bazy MySQL dowolną ilość rekordów np. 17: (czas1, wil1), (czas2, wil2), (czas3, wil3), (czas4, wil4), (czas5, wil5), ..., (czas17, wil17). 2. Z każdych pięciu, kolejnych rekordów obliczam średnią wilgotność: (wil1+wil2+wil3+wil4+wil5)/5 itd. Z 17 rekordów powstaną więc 3 średnie. 3. Średnie mają być wyliczane tak długo jak będzie 5 lub więcej rekordów. Z 17 rekordów pozostaną więc 2 rekordy niepoddane uśrednianiu. 4. Każdej średniej ma zostać przypisany czas rekordu środkowego w każdej piątce np. średniej z pierwszej piątki przypisany zostanie czas3. 5. Teraz wyliczone średnie z przypisanym czasem koduję do formatu JSON jak w przedstawionym wyżej skrypcie. Dziękuję i pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Hej zbysiusp,
Pyton_000 napisał Ci na szybko przykład z logiką, niekoniecznie gotowe rozwiązanie. Jeśli widzisz błąd to po pierwsze powinieneś luknąć do manuala i zobaczyć o co biega. No ale masz tu gotowca, z wyjaśnieniem: Zamień wiersz 32 z Twojego listingu na takie coś:
no i w 35 zamiast var_dump daj Co tu się dzieje? 1. array_chunk($data, 5) dzieli tablicę $data na kilka mniejszych, z których każda zawiera 5 elementów 2. array_column zwraca tablicę wartości z jednej kolumny tablicy. Tu był ten błąd z brakującym drugim parametrem funkcji - ten drugi parametr to nazwa kolumny. 3. array_sum sumuje wartości z tablicy, które potem dzielisz przez 5 żeby otrzymać średnią wilgotność Co może być niejasne na pierwszy rzut oka, to indeksowanie tablicy po array_chunk. Najlepiej zrób var_dump($sets) w wierszu 27 i przeanalizuj wynik - od razu Ci się wszystko poukłada w logiczną całość. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 03:55 |