Forum: PC-Programmierung PHP: Zugriff auf Objects


von testuser (Gast)


Lesenswert?

Guten Abend,

ich versuche Wetterdaten von openweathermap zu ziehen und es klappt bis 
auf den Regenwert auch ganz gut:

Die Temperatur empfange ich zum Beispiel so:

[main] => stdClass Object ( [temp] => 287.24 )

und kann darauf mit

$main = $data->main;
$temp = $main->temp;

zugreifen.
Beim Regen sie es so aus:

[rain] => stdClass Object ( [1h] => 1.02 )

$rain = $data->rain;

funktioniert noch, aber wenn ich dann auf den Wert von 1h zugreifen 
will, funktioniert es nicht. Ich habe es so versucht:

$rainmm = $rain->1h;

Damit kommt php offensichtlich nicht klar, ich vermute wegen der Zahl. 
Gibt es sonst eine Möglichkeit an den Wert zu kommen?

Mit freundlichen Grüßen

testuser

von K. J. (Gast)


Lesenswert?

Ich hab daraus ein mehrdimensionales arrey gemacht das ist einfacher zu 
benutzen, vielleicht hilft dir der teil meines Ansatzes.

Du kannst dir dann auch das komplette arrey ausgeben lassen vielleicht 
ist es noch etwas mehr verschachtelt an der stelle.
1
$buffer = json_decode($buffer);
2
3
$temp = $buffer->main->temp;
4
$ld = $buffer->main->pressure * 0.014503773773022;                                      // Verhältnis : 1 hPa = 0.014503773773022 psi
5
$rlf = $buffer->main->humidity / 10;
6
$wind = $buffer->wind->speed;

von testuser (Gast)


Lesenswert?

Ja so ähnlich habe ich es auch, aber ich habe bei $buffer->rain->1h nach 
wie vor das Problem.

Diese 1 scheint nicht zu gehen, ist aber ja in den Daten von 
openweathermap drin. Wie bekommst du denn den Regenwert?

von S R (Gast)


Lesenswert?

$rain->{'1h'};

von Dirk D. (dicky_d)


Lesenswert?

S R schrieb:
> $rain->{'1h'};
Entweder das, oder du machst bein json_decode direkt nen assoziatives 
array draus, das machst du einfach mit true als 2ten parameter.

von testuser (Gast)


Lesenswert?

Perfekt, danke euch. So läuft's...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.