3v4l.org

run code in 500+ PHP versions simultaneously
<?php $json = '{"list":[{"expiry":[{"cdexpiry":"v130","vlexpiry":"33528.99"},{"cdexpiry":"v230","vlexpiry":"21648.39"},{"cdexpiry":"v150","vlexpiry":"185350.30"},{"cdexpiry":"v120","vlexpiry":"33904.03"},{"cdexpiry":"v175","vlexpiry":"47796.73"},{"cdexpiry":"v220","vlexpiry":"21258.62"},{"cdexpiry":"v170","vlexpiry":"261294.42"},{"cdexpiry":"v140","vlexpiry":"98363.25"},{"cdexpiry":"v110","vlexpiry":"30818.43"},{"cdexpiry":"v165","vlexpiry":"298457.07"},{"cdexpiry":"v240","vlexpiry":"13807.67"},{"cdexpiry":"v210","vlexpiry":"10761.00"},{"cdexpiry":"v160","vlexpiry":"321684.92"}],"mode":"0401","change":"N"},{"expiry":{"cdexpiry":"v210","vlexpiry":"3501.37"},"mode":"0204","change":"N"},{"expiry":{"cdexpiry":"v40","vlexpiry":"1091.46"},"mode":"1904","change":"N"},{"expiry":[{"cdexpiry":"v130","vlexpiry":"2084.08"},{"cdexpiry":"v260","vlexpiry":"28362.31"},{"cdexpiry":"v230","vlexpiry":"823.44"},{"cdexpiry":"v150","vlexpiry":"11738.63"},{"cdexpiry":"v120","vlexpiry":"2104.49"},{"cdexpiry":"v175","vlexpiry":"2678.84"},{"cdexpiry":"v220","vlexpiry":"823.44"},{"cdexpiry":"v170","vlexpiry":"17207.36"},{"cdexpiry":"v140","vlexpiry":"6131.73"},{"cdexpiry":"v110","vlexpiry":"1605.88"},{"cdexpiry":"v165","vlexpiry":"19333.84"},{"cdexpiry":"v210","vlexpiry":"3260.41"},{"cdexpiry":"v160","vlexpiry":"19818.10"}],"mode":"0213","change":"N"},{"expiry":{"cdexpiry":"v210","vlexpiry":"296.78"},"mode":"0101","change":"N"},{"expiry":[{"cdexpiry":"v245","vlexpiry":"14495.37"},{"cdexpiry":"v255","vlexpiry":"35462.84"},{"cdexpiry":"v250","vlexpiry":"15679.97"}],"mode":"0217","change":"N"}],"type":"8"}'; $json_data = json_decode($json); echo "<table border=1>\n"; echo "\t<tr><td>Type</td><td>Value</td></tr>\n"; foreach ($json_data->list as $list) { echo "\t<tr><td>Modal</td><td>{$list->mode}</td></tr>\n"; echo "\t<tr><td>Variation</td><td>{$list->change}</td></tr>\n"; foreach ($list as $key => $data) { if ($key === 'expiry') { if (is_array($data)) { foreach ($data as $prop) { echo "\t<tr><td>Due date</td><td>$prop->cdexpiry</td></tr>\n"; echo "\t<tr><td>Value</td><td>$prop->vlexpiry</td></tr>\n"; } } else { echo "\t<tr><td>Due date</td><td>$data->cdexpiry</td></tr>\n"; echo "\t<tr><td>Value</td><td>$data->vlexpiry</td></tr>\n"; } } } echo "\t<tr><td>---</td><td>---</td></tr>\n"; } echo "</table>";
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 9, Position 2 = 56
Branch analysis from position: 9
2 jumps found. (Code = 78) Position 1 = 10, Position 2 = 56
Branch analysis from position: 10
2 jumps found. (Code = 77) Position 1 = 21, Position 2 = 53
Branch analysis from position: 21
2 jumps found. (Code = 78) Position 1 = 22, Position 2 = 53
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 52
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 42
Branch analysis from position: 27
2 jumps found. (Code = 77) Position 1 = 28, Position 2 = 40
Branch analysis from position: 28
2 jumps found. (Code = 78) Position 1 = 29, Position 2 = 40
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 28
Branch analysis from position: 28
Branch analysis from position: 40
1 jumps found. (Code = 42) Position 1 = 52
Branch analysis from position: 52
1 jumps found. (Code = 42) Position 1 = 21
Branch analysis from position: 21
Branch analysis from position: 40
Branch analysis from position: 42
1 jumps found. (Code = 42) Position 1 = 21
Branch analysis from position: 21
Branch analysis from position: 52
Branch analysis from position: 53
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
Branch analysis from position: 53
Branch analysis from position: 56
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 56
filename:       /in/k78AU
function name:  (null)
number of ops:  59
compiled vars:  !0 = $json, !1 = $json_data, !2 = $list, !3 = $data, !4 = $key, !5 = $prop
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    4     0  E >   ASSIGN                                                       !0, '%7B%22list%22%3A%5B%7B%22expiry%22%3A%5B%7B%22cdexpiry%22%3A%22v130%22%2C%22vlexpiry%22%3A%2233528.99%22%7D%2C%7B%22cdexpiry%22%3A%22v230%22%2C%22vlexpiry%22%3A%2221648.39%22%7D%2C%7B%22cdexpiry%22%3A%22v150%22%2C%22vlexpiry%22%3A%22185350.30%22%7D%2C%7B%22cdexpiry%22%3A%22v120%22%2C%22vlexpiry%22%3A%2233904.03%22%7D%2C%7B%22cdexpiry%22%3A%22v175%22%2C%22vlexpiry%22%3A%2247796.73%22%7D%2C%7B%22cdexpiry%22%3A%22v220%22%2C%22vlexpiry%22%3A%2221258.62%22%7D%2C%7B%22cdexpiry%22%3A%22v170%22%2C%22vlexpiry%22%3A%22261294.42%22%7D%2C%7B%22cdexpiry%22%3A%22v140%22%2C%22vlexpiry%22%3A%2298363.25%22%7D%2C%7B%22cdexpiry%22%3A%22v110%22%2C%22vlexpiry%22%3A%2230818.43%22%7D%2C%7B%22cdexpiry%22%3A%22v165%22%2C%22vlexpiry%22%3A%22298457.07%22%7D%2C%7B%22cdexpiry%22%3A%22v240%22%2C%22vlexpiry%22%3A%2213807.67%22%7D%2C%7B%22cdexpiry%22%3A%22v210%22%2C%22vlexpiry%22%3A%2210761.00%22%7D%2C%7B%22cdexpiry%22%3A%22v160%22%2C%22vlexpiry%22%3A%22321684.92%22%7D%5D%2C%22mode%22%3A%220401%22%2C%22change%22%3A%22N%22%7D%2C%7B%22expiry%22%3A%7B%22cdexpiry%22%3A%22v210%22%2C%22vlexpiry%22%3A%223501.37%22%7D%2C%22mode%22%3A%220204%22%2C%22change%22%3A%22N%22%7D%2C%7B%22expiry%22%3A%7B%22cdexpiry%22%3A%22v40%22%2C%22vlexpiry%22%3A%221091.46%22%7D%2C%22mode%22%3A%221904%22%2C%22change%22%3A%22N%22%7D%2C%7B%22expiry%22%3A%5B%7B%22cdexpiry%22%3A%22v130%22%2C%22vlexpiry%22%3A%222084.08%22%7D%2C%7B%22cdexpiry%22%3A%22v260%22%2C%22vlexpiry%22%3A%2228362.31%22%7D%2C%7B%22cdexpiry%22%3A%22v230%22%2C%22vlexpiry%22%3A%22823.44%22%7D%2C%7B%22cdexpiry%22%3A%22v150%22%2C%22vlexpiry%22%3A%2211738.63%22%7D%2C%7B%22cdexpiry%22%3A%22v120%22%2C%22vlexpiry%22%3A%222104.49%22%7D%2C%7B%22cdexpiry%22%3A%22v175%22%2C%22vlexpiry%22%3A%222678.84%22%7D%2C%7B%22cdexpiry%22%3A%22v220%22%2C%22vlexpiry%22%3A%22823.44%22%7D%2C%7B%22cdexpiry%22%3A%22v170%22%2C%22vlexpiry%22%3A%2217207.36%22%7D%2C%7B%22cdexpiry%22%3A%22v140%22%2C%22vlexpiry%22%3A%226131.73%22%7D%2C%7B%22cdexpiry%22%3A%22v110%22%2C%22vlexpiry%22%3A%221605.88%22%7D%2C%7B%22cdexpiry%22%3A%22v165%22%2C%22vlexpiry%22%3A%2219333.84%22%7D%2C%7B%22cdexpiry%22%3A%22v210%22%2C%22vlexpiry%22%3A%223260.41%22%7D%2C%7B%22cdexpiry%22%3A%22v160%22%2C%22vlexpiry%22%3A%2219818.10%22%7D%5D%2C%22mode%22%3A%220213%22%2C%22change%22%3A%22N%22%7D%2C%7B%22expiry%22%3A%7B%22cdexpiry%22%3A%22v210%22%2C%22vlexpiry%22%3A%22296.78%22%7D%2C%22mode%22%3A%220101%22%2C%22change%22%3A%22N%22%7D%2C%7B%22expiry%22%3A%5B%7B%22cdexpiry%22%3A%22v245%22%2C%22vlexpiry%22%3A%2214495.37%22%7D%2C%7B%22cdexpiry%22%3A%22v255%22%2C%22vlexpiry%22%3A%2235462.84%22%7D%2C%7B%22cdexpiry%22%3A%22v250%22%2C%22vlexpiry%22%3A%2215679.97%22%7D%5D%2C%22mode%22%3A%220217%22%2C%22change%22%3A%22N%22%7D%5D%2C%22type%22%3A%228%22%7D'
    6     1        INIT_FCALL                                                   'json_decode'
          2        SEND_VAR                                                     !0
          3        DO_ICALL                                             $7      
          4        ASSIGN                                                       !1, $7
    7     5        ECHO                                                         '%3Ctable+border%3D1%3E%0A'
    8     6        ECHO                                                         '%09%3Ctr%3E%3Ctd%3EType%3C%2Ftd%3E%3Ctd%3EValue%3C%2Ftd%3E%3C%2Ftr%3E%0A'
    9     7        FETCH_OBJ_R                                          ~9      !1, 'list'
          8      > FE_RESET_R                                           $10     ~9, ->56
          9    > > FE_FETCH_R                                                   $10, !2, ->56
   10    10    >   ROPE_INIT                                         3  ~13     '%09%3Ctr%3E%3Ctd%3EModal%3C%2Ftd%3E%3Ctd%3E'
         11        FETCH_OBJ_R                                          ~11     !2, 'mode'
         12        ROPE_ADD                                          1  ~13     ~13, ~11
         13        ROPE_END                                          2  ~12     ~13, '%3C%2Ftd%3E%3C%2Ftr%3E%0A'
         14        ECHO                                                         ~12
   11    15        ROPE_INIT                                         3  ~17     '%09%3Ctr%3E%3Ctd%3EVariation%3C%2Ftd%3E%3Ctd%3E'
         16        FETCH_OBJ_R                                          ~15     !2, 'change'
         17        ROPE_ADD                                          1  ~17     ~17, ~15
         18        ROPE_END                                          2  ~16     ~17, '%3C%2Ftd%3E%3C%2Ftr%3E%0A'
         19        ECHO                                                         ~16
   12    20      > FE_RESET_R                                           $19     !2, ->53
         21    > > FE_FETCH_R                                           ~20     $19, !3, ->53
         22    >   ASSIGN                                                       !4, ~20
   13    23        IS_IDENTICAL                                                 !4, 'expiry'
         24      > JMPZ                                                         ~22, ->52
   14    25    >   TYPE_CHECK                                      128          !3
         26      > JMPZ                                                         ~23, ->42
   15    27    > > FE_RESET_R                                           $24     !3, ->40
         28    > > FE_FETCH_R                                                   $24, !5, ->40
   16    29    >   ROPE_INIT                                         3  ~27     '%09%3Ctr%3E%3Ctd%3EDue+date%3C%2Ftd%3E%3Ctd%3E'
         30        FETCH_OBJ_R                                          ~25     !5, 'cdexpiry'
         31        ROPE_ADD                                          1  ~27     ~27, ~25
         32        ROPE_END                                          2  ~26     ~27, '%3C%2Ftd%3E%3C%2Ftr%3E%0A'
         33        ECHO                                                         ~26
   17    34        ROPE_INIT                                         3  ~31     '%09%3Ctr%3E%3Ctd%3EValue%3C%2Ftd%3E%3Ctd%3E'
         35        FETCH_OBJ_R                                          ~29     !5, 'vlexpiry'
         36        ROPE_ADD                                          1  ~31     ~31, ~29
         37        ROPE_END                                          2  ~30     ~31, '%3C%2Ftd%3E%3C%2Ftr%3E%0A'
         38        ECHO                                                         ~30
   15    39      > JMP                                                          ->28
         40    >   FE_FREE                                                      $24
   14    41      > JMP                                                          ->52
   20    42    >   ROPE_INIT                                         3  ~35     '%09%3Ctr%3E%3Ctd%3EDue+date%3C%2Ftd%3E%3Ctd%3E'
         43        FETCH_OBJ_R                                          ~33     !3, 'cdexpiry'
         44        ROPE_ADD                                          1  ~35     ~35, ~33
         45        ROPE_END                                          2  ~34     ~35, '%3C%2Ftd%3E%3C%2Ftr%3E%0A'
         46        ECHO                                                         ~34
   21    47        ROPE_INIT                                         3  ~39     '%09%3Ctr%3E%3Ctd%3EValue%3C%2Ftd%3E%3Ctd%3E'
         48        FETCH_OBJ_R                                          ~37     !3, 'vlexpiry'
         49        ROPE_ADD                                          1  ~39     ~39, ~37
         50        ROPE_END                                          2  ~38     ~39, '%3C%2Ftd%3E%3C%2Ftr%3E%0A'
         51        ECHO                                                         ~38
   12    52    > > JMP                                                          ->21
         53    >   FE_FREE                                                      $19
   25    54        ECHO                                                         '%09%3Ctr%3E%3Ctd%3E---%3C%2Ftd%3E%3Ctd%3E---%3C%2Ftd%3E%3C%2Ftr%3E%0A'
    9    55      > JMP                                                          ->9
         56    >   FE_FREE                                                      $10
   27    57        ECHO                                                         '%3C%2Ftable%3E'
         58      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
148.48 ms | 2629 KiB | 14 Q