suche PHP Hilfe "wie speichere ich Werte in einem String"?
- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
suche PHP Hilfe "wie speichere ich Werte in einem String"?
Hallo,
hier gibt es doch PHP-Spezialisten für die folgende Fragestellung sicherlich lachhaft ist:
Kann mir Jemand sagen, wie ich 50 Messwerte (aus einer Variablen, die alle paar Sekunden neu gesendet wird)in einen String speichern kann, darin dann alle 50 Messwerte zusammenzählen und durch 50 teilen?
Mit jedem weiteren Messwert, sollte dann der älteste Messwert im String herausfallen, sodass immer 50 Messwerte darin erhalten sind und aus diesen dann der Mittelwert gebildet wir?
Vielen Dank für die Hilfe.
LG Frank
hier gibt es doch PHP-Spezialisten für die folgende Fragestellung sicherlich lachhaft ist:
Kann mir Jemand sagen, wie ich 50 Messwerte (aus einer Variablen, die alle paar Sekunden neu gesendet wird)in einen String speichern kann, darin dann alle 50 Messwerte zusammenzählen und durch 50 teilen?
Mit jedem weiteren Messwert, sollte dann der älteste Messwert im String herausfallen, sodass immer 50 Messwerte darin erhalten sind und aus diesen dann der Mittelwert gebildet wir?
Vielen Dank für die Hilfe.
LG Frank
- rodolfo
- Beiträge: 256
- Registriert: 27 Nov 2020, 15:59
- Wohnort: Pfaffenhofen
- Hat sich bedankt: 23 mal
- Danksagung erhalten: 21 mal
- Kontaktdaten:
Re: suche PHP Hilfe "wie speichere ich Werte in einem String"?
Hallo Frank,
Array erstellen und mit den Werten aus deiner Variablen befüllen - per array_unshift($array, wert) schiebst du ein neues Element an den Anfang des Arrays. Länge des Arrays per count($array) abfragen, hat das Array 51 Elemente wird das letzte Element mit array_pop($array) entfernt. Nun die Elemente des Arrays per array_sum($array) addieren und durch 50 teilen - fertig.
Array erstellen und mit den Werten aus deiner Variablen befüllen - per array_unshift($array, wert) schiebst du ein neues Element an den Anfang des Arrays. Länge des Arrays per count($array) abfragen, hat das Array 51 Elemente wird das letzte Element mit array_pop($array) entfernt. Nun die Elemente des Arrays per array_sum($array) addieren und durch 50 teilen - fertig.
- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
Re: suche PHP Hilfe "wie speichere ich Werte in einem String"?
OK, Dankeschön, kannst du mir noch schnell das PHP Schipsel aufzeigen, wie ich dann das Array am Anfang anlege und in einer txt-datei reinschreibe und abspeichere, damit bei nächsten Durchlauf dann dieses array immer um einen Wert dann erweitert wird (bis eben die 50 Einzelwerte erreicht sind)?
Irgendwie baue ich da gerade Mist zusammen.
LG Frank
Irgendwie baue ich da gerade Mist zusammen.
LG Frank
- rodolfo
- Beiträge: 256
- Registriert: 27 Nov 2020, 15:59
- Wohnort: Pfaffenhofen
- Hat sich bedankt: 23 mal
- Danksagung erhalten: 21 mal
- Kontaktdaten:
Re: suche PHP Hilfe "wie speichere ich Werte in einem String"?
Ein Array namens "valuelist" legst du initial wie folgt an:
Den Wert der Variablen (hier beispielhaft 15) schreibst du so in das Array:
Das Array legst du wie folgt in einer Datei (hier beispielhaft myvalues.txt) ab:
Ein Array aus der Datei befüllst du so:
Code: Alles auswählen
$valuelist = array();
Code: Alles auswählen
array_unshift($valuelist, 15);
Code: Alles auswählen
file_put_contents("myvalues.txt", serialize($valuelist));
Code: Alles auswählen
$valuelist = unserialize(file_get_contents("myvalues.txt"));
- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
Re: suche PHP Hilfe "wie speichere ich Werte in einem String"?
Hi,
also irgendwas mache ich da falsch, mit deinem Befehl wird der Wert im Array ständig überschrieben anstatt immer einen neuen Wert in das Array zuzufügen.
Ich vermute ich muss da irgendwie eine Schleife noch einbauen?
Irgendwie komme ich da nicht weiter.
Wie gesagt, in das Array sollen nacheinander 50 Werte reingeschrieben werden, d.h. nach jedem Durchlauf des Scriptes wird ein Wert hinzugefügt, bis das Array mit 50 Einzelwerten gefüllt ist, ab dann soll bei weiterem Hinzufügen immer der älteste Wert entfernt werden und aus den 50 Einzelwerten die Summe und dann daraus der Mittelwert gebildet werden.
Ich bekomms irgendwie nicht hin, habe da doch noch zu wenig Kenntnisse.
Kannst du mir da scripttechnisch noch mal helfen?
LG Frank
also irgendwas mache ich da falsch, mit deinem Befehl wird der Wert im Array ständig überschrieben anstatt immer einen neuen Wert in das Array zuzufügen.
Ich vermute ich muss da irgendwie eine Schleife noch einbauen?
Irgendwie komme ich da nicht weiter.
Wie gesagt, in das Array sollen nacheinander 50 Werte reingeschrieben werden, d.h. nach jedem Durchlauf des Scriptes wird ein Wert hinzugefügt, bis das Array mit 50 Einzelwerten gefüllt ist, ab dann soll bei weiterem Hinzufügen immer der älteste Wert entfernt werden und aus den 50 Einzelwerten die Summe und dann daraus der Mittelwert gebildet werden.
Ich bekomms irgendwie nicht hin, habe da doch noch zu wenig Kenntnisse.
Kannst du mir da scripttechnisch noch mal helfen?
LG Frank
-
- Beiträge: 81
- Registriert: 07 Dez 2020, 18:19
- Wohnort: Ulm / Grimmelfingen
- Hat sich bedankt: 10 mal
- Danksagung erhalten: 18 mal
Re: suche PHP Hilfe "wie speichere ich Werte in einem String"?
Es gibt wohl tausende Möglichkeiten. Ich würde mit array_push/arary_shift arbeiten.
Werte am Ende hinzufügen
Mehr als 50 Einträge
Das erste Element lesen und löschen
Hinweis:
Mit print_r($array) kannst Du dir den Inhalt des Arrays ausgeben lassen.
MfG Werner
Edith:
Berechnen des Mittelwerts geht in php ganz einfach:
Werte am Ende hinzufügen
Code: Alles auswählen
The array_push($array, $wert) function inserts one or more elements to the end of an array.
Code: Alles auswählen
if (count($array) > 50)
Code: Alles auswählen
The array_shift($array) function removes the first element from an array, and returns the value of the removed element.
Mit print_r($array) kannst Du dir den Inhalt des Arrays ausgeben lassen.
MfG Werner
Edith:
Berechnen des Mittelwerts geht in php ganz einfach:
Code: Alles auswählen
array_sum($array) / count($array)
- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
Re: suche PHP Hilfe "wie speichere ich Werte in einem String"?
Hallo,
es geht mir darum:
meine Wetterstation liefert imer den aktuellen Windwert anstatt den 10-minütigen Mittelwein.
Die Station sendet alle 12 Sekunden den aktuellen Windwert, d.h. 50 werte in 10 Minuten und aus diesen will ich den Mittwelwert bilden und ausgeben.
Habe es nun mit eurer und Googels-Hilfe gelöst bekommen, habe es so gemacht:
es geht mir darum:
meine Wetterstation liefert imer den aktuellen Windwert anstatt den 10-minütigen Mittelwein.
Die Station sendet alle 12 Sekunden den aktuellen Windwert, d.h. 50 werte in 10 Minuten und aus diesen will ich den Mittwelwert bilden und ausgeben.
Habe es nun mit eurer und Googels-Hilfe gelöst bekommen, habe es so gemacht:
Code: Alles auswählen
$windmittel = 'mittelwind.txt';
file_put_contents($windmittel, $wind, FILE_APPEND); //Wind ist die Variable der Wetterstation
$a = explode( ';', file_get_contents($windmittel) );
if ( count($a) > 50 )
array_shift( $a );
$a[] = $neue_nummer;
file_put_contents( $windmittel, implode(';', $a) );
$windneu = array_sum($a) . "\n";
$windneu = $wind/50;
$windneu = round($wind,1);
Zuletzt geändert von Wetterfrosch am 23 Jan 2021, 09:14, insgesamt 1-mal geändert.
-
- Beiträge: 81
- Registriert: 07 Dez 2020, 18:19
- Wohnort: Ulm / Grimmelfingen
- Hat sich bedankt: 10 mal
- Danksagung erhalten: 18 mal
Re: suche PHP Hilfe "wie speichere ich Werte in einem String"?
Hallo,
gut das es geht. Aber diese Zeilen kommen mir komisch vor:
Zeile#1 Warum hängst Du einen Zeilenumbruch "\n" an das Ende?
Zeile#2 Die Berechnung stimmt nur bei 50 Einträgen. Bei weniger (am Anfang) kommt Mist raus
Wie wäre es mit (ungetestet):
gut das es geht. Aber diese Zeilen kommen mir komisch vor:
Code: Alles auswählen
$windneu = array_sum($ah) . "\n";
$windneu = $wind/50;
$windneu = round($wind,1);
Zeile#2 Die Berechnung stimmt nur bei 50 Einträgen. Bei weniger (am Anfang) kommt Mist raus
Wie wäre es mit (ungetestet):
Code: Alles auswählen
$windneu = round((array_sum($ah) / count($ah)), 1);
- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
Re: suche PHP Hilfe "wie speichere ich Werte in einem String"?
Hi,
das \n war so in einer Vorlage die ich in google gefunden hatte, deswegen habe ich es einfach übernommen.
ja, stimmt, wenn weniger als 50 Werte drin sind, kommt Mist raus, sind aber eigentlich immer 50 werte vorhanden, kann das aber wie von dir vorgeschlagen mal ausprobieren.
das \n war so in einer Vorlage die ich in google gefunden hatte, deswegen habe ich es einfach übernommen.
ja, stimmt, wenn weniger als 50 Werte drin sind, kommt Mist raus, sind aber eigentlich immer 50 werte vorhanden, kann das aber wie von dir vorgeschlagen mal ausprobieren.
-
- Beiträge: 81
- Registriert: 07 Dez 2020, 18:19
- Wohnort: Ulm / Grimmelfingen
- Hat sich bedankt: 10 mal
- Danksagung erhalten: 18 mal
Re: suche PHP Hilfe "wie speichere ich Werte in einem String"?
Alles freiwillig, kein muss...kann das aber wie von dir vorgeschlagen mal ausprobieren.
