3v4l.org

run code in 300+ PHP versions simultaneously
<?php $json = '{ "device": { "sn": 5165654, "name": "FDI_AWS_DEMO", "v": "2.7B3" }, "channels": [ { "code": "RH", "name": "Relative Humidity", "unit": "%" }, { "code": "AT", "name": "Air Temperature", "unit": "C" }, { "code": "MINVi", "name": "Min voltage", "unit": "V" }, { "code": "PTi", "name": "Processor temperature", "unit": "C" }, { "code": "SDB", "name": "Network signal dB", "unit": "dB" }, { "code": "LWS", "name": "Leaf Wetness", "unit": "%" }, { "code": "WSAV", "name": "Wind Speed Avg", "unit": "km/h" }, { "code": "WSMX", "name": "Wind Speed Max", "unit": "km/h" }, { "code": "WSMN", "name": "Wind Speed Min", "unit": "km/h" }, { "code": "PR_TOT", "name": "PR Tot", "unit": "mm" }, { "code": "RAIN", "name": "Rain", "unit": "mm" }, { "code": "FDI", "name": "fdi", "unit": "Unit" }, { "code": "DT", "name": "Delta-T", "unit": "C" }, { "code": "LAT", "name": "Latitude", "unit": "deg" }, { "code": "LON", "name": "Longitude", "unit": "deg" }, { "code": "WD", "name": "Wind Direction", "unit": "Degrees" }, { "code": "P1", "name": "Par1", "unit": "" }, { "code": "AVGCi", "name": "Average Current", "unit": "mA" }, {} ], "data": [ { "$ts": 170801164400, "$msg": "SD_FAIL;1" }, { "$ts": 170801170000, "$msg": "WDT;WV01" }, { "$ts": 170801170000, "$msg": "WDT;SDI12" }, { "$ts": 170801170000, "$msg": "WDT;LWS" }, { "$ts": 170801170000, "RH": 67.15, "AT": 12.87, "MINVi": 3.81, "PTi": 23.4, "LWS": "0*T", "WSAV": 0, "WSMX": 0, "WSMN": 0, "PR_TOT": 156, "RAIN": 0, "FDI": 0.239, "DT": 2.881, "WD": "0*T", "P1": "0*T", "AVGCi": 175 }, {} ] }'; $obj = json_decode($json, true); foreach($obj['data'] as $k=>$element) { if(isset($element['RH'])) { echo "Element {$k} has data:\n"; foreach($element as $key=>$value) { echo "\tKey: {$key}, Value: {$value}\n"; } } else { echo "Element {$k} has no data.\n"; } } ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 8, Position 2 = 33
Branch analysis from position: 8
2 jumps found. (Code = 78) Position 1 = 9, Position 2 = 33
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 28
Branch analysis from position: 12
2 jumps found. (Code = 77) Position 1 = 17, Position 2 = 26
Branch analysis from position: 17
2 jumps found. (Code = 78) Position 1 = 18, Position 2 = 26
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 17
Branch analysis from position: 17
Branch analysis from position: 26
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 8
Branch analysis from position: 8
Branch analysis from position: 26
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 8
Branch analysis from position: 8
Branch analysis from position: 33
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 33
filename:       /in/K7iU1
function name:  (null)
number of ops:  35
compiled vars:  !0 = $json, !1 = $obj, !2 = $element, !3 = $k, !4 = $value, !5 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%7B%0A+++%22device%22%3A+%7B%0A++++++%22sn%22%3A+5165654%2C%0A++++++%22name%22%3A+%22FDI_AWS_DEMO%22%2C%0A++++++%22v%22%3A+%222.7B3%22%0A+++%7D%2C%0A+++%22channels%22%3A+%5B%0A++++++%7B%0A+++++++++%22code%22%3A+%22RH%22%2C%0A+++++++++%22name%22%3A+%22Relative+Humidity%22%2C%0A+++++++++%22unit%22%3A+%22%25%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22AT%22%2C%0A+++++++++%22name%22%3A+%22Air+Temperature%22%2C%0A+++++++++%22unit%22%3A+%22C%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22MINVi%22%2C%0A+++++++++%22name%22%3A+%22Min+voltage%22%2C%0A+++++++++%22unit%22%3A+%22V%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22PTi%22%2C%0A+++++++++%22name%22%3A+%22Processor+temperature%22%2C%0A+++++++++%22unit%22%3A+%22C%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22SDB%22%2C%0A+++++++++%22name%22%3A+%22Network+signal+dB%22%2C%0A+++++++++%22unit%22%3A+%22dB%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22LWS%22%2C%0A+++++++++%22name%22%3A+%22Leaf+Wetness%22%2C%0A+++++++++%22unit%22%3A+%22%25%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22WSAV%22%2C%0A+++++++++%22name%22%3A+%22Wind+Speed+Avg%22%2C%0A+++++++++%22unit%22%3A+%22km%2Fh%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22WSMX%22%2C%0A+++++++++%22name%22%3A+%22Wind+Speed+Max%22%2C%0A+++++++++%22unit%22%3A+%22km%2Fh%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22WSMN%22%2C%0A+++++++++%22name%22%3A+%22Wind+Speed+Min%22%2C%0A+++++++++%22unit%22%3A+%22km%2Fh%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22PR_TOT%22%2C%0A+++++++++%22name%22%3A+%22PR+Tot%22%2C%0A+++++++++%22unit%22%3A+%22mm%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22RAIN%22%2C%0A+++++++++%22name%22%3A+%22Rain%22%2C%0A+++++++++%22unit%22%3A+%22mm%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22FDI%22%2C%0A+++++++++%22name%22%3A+%22fdi%22%2C%0A+++++++++%22unit%22%3A+%22Unit%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22DT%22%2C%0A+++++++++%22name%22%3A+%22Delta-T%22%2C%0A+++++++++%22unit%22%3A+%22C%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22LAT%22%2C%0A+++++++++%22name%22%3A+%22Latitude%22%2C%0A+++++++++%22unit%22%3A+%22deg%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22LON%22%2C%0A+++++++++%22name%22%3A+%22Longitude%22%2C%0A+++++++++%22unit%22%3A+%22deg%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22WD%22%2C%0A+++++++++%22name%22%3A+%22Wind+Direction%22%2C%0A+++++++++%22unit%22%3A+%22Degrees%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22P1%22%2C%0A+++++++++%22name%22%3A+%22Par1%22%2C%0A+++++++++%22unit%22%3A+%22%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22code%22%3A+%22AVGCi%22%2C%0A+++++++++%22name%22%3A+%22Average+Current%22%2C%0A+++++++++%22unit%22%3A+%22mA%22%0A++++++%7D%2C%0A++++++%7B%7D%0A+++%5D%2C%0A+++%22data%22%3A+%5B%0A++++++%7B%0A+++++++++%22%24ts%22%3A+170801164400%2C%0A+++++++++%22%24msg%22%3A+%22SD_FAIL%3B1%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22%24ts%22%3A+170801170000%2C%0A+++++++++%22%24msg%22%3A+%22WDT%3BWV01%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22%24ts%22%3A+170801170000%2C%0A+++++++++%22%24msg%22%3A+%22WDT%3BSDI12%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22%24ts%22%3A+170801170000%2C%0A+++++++++%22%24msg%22%3A+%22WDT%3BLWS%22%0A++++++%7D%2C%0A++++++%7B%0A+++++++++%22%24ts%22%3A+170801170000%2C%0A+++++++++%22RH%22%3A+67.15%2C%0A+++++++++%22AT%22%3A+12.87%2C%0A+++++++++%22MINVi%22%3A+3.81%2C%0A+++++++++%22PTi%22%3A+23.4%2C%0A+++++++++%22LWS%22%3A+%220%2AT%22%2C%0A+++++++++%22WSAV%22%3A+0%2C%0A+++++++++%22WSMX%22%3A+0%2C%0A+++++++++%22WSMN%22%3A+0%2C%0A+++++++++%22PR_TOT%22%3A+156%2C%0A+++++++++%22RAIN%22%3A+0%2C%0A+++++++++%22FDI%22%3A+0.239%2C%0A+++++++++%22DT%22%3A+2.881%2C%0A+++++++++%22WD%22%3A+%220%2AT%22%2C%0A+++++++++%22P1%22%3A+%220%2AT%22%2C%0A+++++++++%22AVGCi%22%3A+175%0A++++++%7D%2C%0A++++++%7B%7D%0A+++%5D%0A%7D'
  141     1        INIT_FCALL                                               'json_decode'
          2        SEND_VAR                                                 !0
          3        SEND_VAL                                                 <true>
          4        DO_ICALL                                         $7      
          5        ASSIGN                                                   !1, $7
  145     6        FETCH_DIM_R                                      ~9      !1, 'data'
          7      > FE_RESET_R                                       $10     ~9, ->33
          8    > > FE_FETCH_R                                       ~11     $10, !2, ->33
          9    >   ASSIGN                                                   !3, ~11
  146    10        ISSET_ISEMPTY_DIM_OBJ                         0          !2, 'RH'
         11      > JMPZ                                                     ~13, ->28
  147    12    >   ROPE_INIT                                     3  ~15     'Element+'
         13        ROPE_ADD                                      1  ~15     ~15, !3
         14        ROPE_END                                      2  ~14     ~15, '+has+data%3A%0A'
         15        ECHO                                                     ~14
  148    16      > FE_RESET_R                                       $17     !2, ->26
         17    > > FE_FETCH_R                                       ~18     $17, !4, ->26
         18    >   ASSIGN                                                   !5, ~18
  149    19        ROPE_INIT                                     5  ~21     '%09Key%3A+'
         20        ROPE_ADD                                      1  ~21     ~21, !5
         21        ROPE_ADD                                      2  ~21     ~21, '%2C+Value%3A+'
         22        ROPE_ADD                                      3  ~21     ~21, !4
         23        ROPE_END                                      4  ~20     ~21, '%0A'
         24        ECHO                                                     ~20
  148    25      > JMP                                                      ->17
         26    >   FE_FREE                                                  $17
         27      > JMP                                                      ->32
  152    28    >   ROPE_INIT                                     3  ~25     'Element+'
         29        ROPE_ADD                                      1  ~25     ~25, !3
         30        ROPE_END                                      2  ~24     ~25, '+has+no+data.%0A'
         31        ECHO                                                     ~24
  145    32    > > JMP                                                      ->8
         33    >   FE_FREE                                                  $10
  156    34      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
144.6 ms | 949 KiB | 16 Q