+ Antworten
Ergebnis 1 bis 5 von 5
  1. #1
    Registriert seit
    Feb 2008
    Ort
    Düsseldorf
    Beiträge
    517

    Standard Array ändert Reihenfolge, wie gezielt auf Werte zugreifen?

    Hallo Leute,

    ich stehe gerade mal wieder auf dem Schlauch.

    Ich lese über eine API einige Daten meines Wechselrichters ein. Das funktioniert auch soweit bis auf ein entscheidendes Detail:

    Die Inhalte im Array ändern bei jedem Auslesen die Reihenfolge. Ich kann also nicht z.B. mit:
    $json4->energyDetails->meters[1]->values[0]->value
    zugreifen weil der Inhalt von meters1 mal die Produktion ist und beim nächsten mal z.B. der Strombezug.

    Jemand eine Idee wie ich gezielt auf den Purchased oder FeedIn zugreifen kann?

    Ich müsste irgendwie [type] => XXX auswerten.

    Das Array:

    Code:
    stdClass Object
    (
        [energyDetails] => stdClass Object
            (
                [timeUnit] => YEAR
                [unit] => Wh
                [meters] => Array
                    (
                        [0] => stdClass Object
                            (
                                [type] => Consumption
                                [values] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [date] => 2019-01-01 00:00:00
                                                [value] => 3757255
                                            )
    
                                        [1] => stdClass Object
                                            (
                                                [date] => 2020-01-01 00:00:00
                                                [value] => 3491985
                                            )
    
                                    )
    
                            )
    
                        [1] => stdClass Object
                            (
                                [type] => FeedIn
                                [values] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [date] => 2019-01-01 00:00:00
                                                [value] => 1389396
                                            )
    
                                        [1] => stdClass Object
                                            (
                                                [date] => 2020-01-01 00:00:00
                                                [value] => 1198316
                                            )
    
                                    )
    
                            )
    
                        [2] => stdClass Object
                            (
                                [type] => Production
                                [values] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [date] => 2019-01-01 00:00:00
                                                [value] => 3929506
                                            )
    
                                        [1] => stdClass Object
                                            (
                                                [date] => 2020-01-01 00:00:00
                                                [value] => 3547070
                                            )
    
                                    )
    
                            )
    
                        [3] => stdClass Object
                            (
                                [type] => Purchased
                                [values] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [date] => 2019-01-01 00:00:00
                                                [value] => 1217145
                                            )
    
                                        [1] => stdClass Object
                                            (
                                                [date] => 2020-01-01 00:00:00
                                                [value] => 1143231
                                            )
    
                                    )
    
                            )
    
                    )
    
            )
    
    )
    Danke und viele Grüße
    Stephan
    ___________________________________________
    Wago SPS 750-881 mit Dali Klemme 753-647 und den üblichen DI`s und DO`s
    IP-Symcon Unlimited, letzte Beta...

  2. #2
    Registriert seit
    Apr 2011
    Beiträge
    2,221

    Du hast es dir schon selber beantwortet:
    ch müsste irgendwie [type] => XXX auswerten.
    Du hast doch Array in Array.... im ersten Array hast du den type und das Array... also das Array auslesen, gucken was in Type steht und dementsprechend das darin liegende Array verarbeiten.
    HM-Funk, HM-Wired, EnOcean, Eltako, Z-Wave, Zigbee, 1-Wire, Harmony, Hue, IP-Cams, Modbus, Pluggit, Rasp-Pi's und Eigenbauten

  3. #3
    Registriert seit
    Feb 2008
    Ort
    Düsseldorf
    Beiträge
    517

    Zitat Zitat von Hagbard235 Beitrag anzeigen
    Du hast es dir schon selber beantwortet:

    Du hast doch Array in Array.... im ersten Array hast du den type und das Array... also das Array auslesen, gucken was in Type steht und dementsprechend das darin liegende Array verarbeiten.
    Und bei dem wie hänge ich halt gerade ...
    ___________________________________________
    Wago SPS 750-881 mit Dali Klemme 753-647 und den üblichen DI`s und DO`s
    IP-Symcon Unlimited, letzte Beta...

  4. #4
    Registriert seit
    Apr 2011
    Beiträge
    2,221

    PHP-Code:

    if ($json4[energyDetails][meters][1][type] == 'Consumption'
    // dann die Daten des Array 1 als Verbrauch auslesen als $json4[energyDetails][meters][1][value][0...x]

    if (
    $json4[energyDetails][meters][1][type] == 'FeedIn'
    // dann die Daten des Array 1 als Verbrauch auslesen als $json4[energyDetails][meters][1][value][0...x]

    if (
    $json4[energyDetails][meters][0][type] == 'Consumption'
    // dann die Daten des Array 0 als Verbrauch auslesen als $json4[energyDetails][meters][0][value][0...x]

    if (
    $json4[energyDetails][meters][0][type] == 'FeedIn'
    // dann die Daten des Array 0 als Verbrauch auslesen als $json4[energyDetails][meters][0][value][0...x]

    also so ganz quick und dirty geschrieben.... ich denke du weisst was ich meine.. eine Schleife wäre sauberer und weniger Code, aber wenn du das hier hin bekommen hast kannst du es bestimmt auf eine Schleife umbauen
    HM-Funk, HM-Wired, EnOcean, Eltako, Z-Wave, Zigbee, 1-Wire, Harmony, Hue, IP-Cams, Modbus, Pluggit, Rasp-Pi's und Eigenbauten

  5. #5
    Registriert seit
    Feb 2008
    Ort
    Düsseldorf
    Beiträge
    517

    Kennst du das? Man sieht die Lösung und kommt sich wie der letzte Volldepp vor?

    Danke!
    ___________________________________________
    Wago SPS 750-881 mit Dali Klemme 753-647 und den üblichen DI`s und DO`s
    IP-Symcon Unlimited, letzte Beta...

Ähnliche Themen

  1. Werte in Array schreiben
    Von tommy86 im Forum Skripte, PHP, SQL
    Antworten: 4
    Letzter Beitrag: 14.01.20, 18:18
  2. Antworten: 7
    Letzter Beitrag: 02.10.18, 10:34
  3. Antworten: 7
    Letzter Beitrag: 30.04.18, 18:18
  4. Werte richtig anzeigen? Aber wie ? Mod bus Hex werte.
    Von Dicktaracy im Forum 1-Wire, M-BUS
    Antworten: 4
    Letzter Beitrag: 29.11.15, 20:37
  5. Wie kann man aus Java heraus auf IPS Variablen zugreifen?
    Von bumaas im Forum Entwicklung mit PHP-SDK/Delphi-SDK
    Antworten: 6
    Letzter Beitrag: 02.11.11, 10:58