3v4l.org

run code in 300+ PHP versions simultaneously
<?php $items = [ (object)['level' => '1', 'title' => 'Home'], (object)['level' => '1', 'title' => 'DIFC'], (object)['level' => '1', 'title' => 'ADGM'], (object)['level' => '1', 'title' => 'About'], (object)['level' => '1', 'title' => 'Publications'], (object)['level' => '2', 'title' => 'FinTech: Now Everybody Wants A Slice of the Pie'], (object)['level' => '2', 'title' => 'The Role of Financial Centres in Emerging Economies'], (object)['level' => '2', 'title' => 'Bitcoin versus Ethereum '], (object)['level' => '1', 'title' => 'ADGM'], (object)['level' => '1', 'title' => 'DIFC'], (object)['level' => '1', 'title' => 'Finance'], (object)['level' => '1', 'title' => 'Contact'] ]; echo '<ul itemscope itemtype="http://www.schema.org/SiteNavigationElement">' . "\n"; foreach ($items as $i => $menu_item) { if($menu_item->level == '1') { if ($i) { // so long as not the first row of results if ($sub_menu) { // only display a batch of submenus if batch is not empty echo "\n\t\t<ul>\n\t\t\t<li>" . implode("</li>\n\t\t\t<li>", $sub_menu) . "</li>\n\t\t</ul>"; } echo "\n\t" . '</li>' . "\n"; } $sub_menu = array(); // start over with a new batch echo "\t" . '<li itemprop="name">' . "\n"; echo "\t\t" . '<a itemprop="url" href="http://www.10leaves.ae/">' . $menu_item->title . '</a>'; } elseif ($menu_item->level == '2') { $sub_menu[] = $menu_item->title; } } if ($items) { echo "\n\t</li>"; } echo "\n</ul>";
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 27, Position 2 = 56
Branch analysis from position: 27
2 jumps found. (Code = 78) Position 1 = 28, Position 2 = 56
Branch analysis from position: 28
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 49
Branch analysis from position: 32
2 jumps found. (Code = 43) Position 1 = 33, Position 2 = 42
Branch analysis from position: 33
2 jumps found. (Code = 43) Position 1 = 34, Position 2 = 41
Branch analysis from position: 34
1 jumps found. (Code = 42) Position 1 = 55
Branch analysis from position: 55
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
Branch analysis from position: 41
Branch analysis from position: 42
Branch analysis from position: 49
2 jumps found. (Code = 43) Position 1 = 52, Position 2 = 55
Branch analysis from position: 52
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
Branch analysis from position: 55
Branch analysis from position: 56
2 jumps found. (Code = 43) Position 1 = 58, Position 2 = 59
Branch analysis from position: 58
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 59
Branch analysis from position: 56
filename:       /in/EcMsc
function name:  (null)
number of ops:  61
compiled vars:  !0 = $items, !1 = $menu_item, !2 = $i, !3 = $sub_menu
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   CAST                                          8  ~4      <array>
          1        INIT_ARRAY                                       ~5      ~4
    4     2        CAST                                          8  ~6      <array>
          3        ADD_ARRAY_ELEMENT                                ~5      ~6
    5     4        CAST                                          8  ~7      <array>
          5        ADD_ARRAY_ELEMENT                                ~5      ~7
    6     6        CAST                                          8  ~8      <array>
          7        ADD_ARRAY_ELEMENT                                ~5      ~8
    7     8        CAST                                          8  ~9      <array>
          9        ADD_ARRAY_ELEMENT                                ~5      ~9
    8    10        CAST                                          8  ~10     <array>
         11        ADD_ARRAY_ELEMENT                                ~5      ~10
    9    12        CAST                                          8  ~11     <array>
         13        ADD_ARRAY_ELEMENT                                ~5      ~11
   10    14        CAST                                          8  ~12     <array>
         15        ADD_ARRAY_ELEMENT                                ~5      ~12
   11    16        CAST                                          8  ~13     <array>
         17        ADD_ARRAY_ELEMENT                                ~5      ~13
   12    18        CAST                                          8  ~14     <array>
         19        ADD_ARRAY_ELEMENT                                ~5      ~14
   13    20        CAST                                          8  ~15     <array>
         21        ADD_ARRAY_ELEMENT                                ~5      ~15
   14    22        CAST                                          8  ~16     <array>
         23        ADD_ARRAY_ELEMENT                                ~5      ~16
    2    24        ASSIGN                                                   !0, ~5
   17    25        ECHO                                                     '%3Cul+itemscope+itemtype%3D%22http%3A%2F%2Fwww.schema.org%2FSiteNavigationElement%22%3E%0A'
   18    26      > FE_RESET_R                                       $18     !0, ->56
         27    > > FE_FETCH_R                                       ~19     $18, !1, ->56
         28    >   ASSIGN                                                   !2, ~19
   19    29        FETCH_OBJ_R                                      ~21     !1, 'level'
         30        IS_EQUAL                                                 ~21, '1'
         31      > JMPZ                                                     ~22, ->49
   20    32    > > JMPZ                                                     !2, ->42
   21    33    > > JMPZ                                                     !3, ->41
   22    34    >   INIT_FCALL                                               'implode'
         35        SEND_VAL                                                 '%3C%2Fli%3E%0A%09%09%09%3Cli%3E'
         36        SEND_VAR                                                 !3
         37        DO_ICALL                                         $23     
         38        CONCAT                                           ~24     '%0A%09%09%3Cul%3E%0A%09%09%09%3Cli%3E', $23
         39        CONCAT                                           ~25     ~24, '%3C%2Fli%3E%0A%09%09%3C%2Ful%3E'
         40        ECHO                                                     ~25
   24    41    >   ECHO                                                     '%0A%09%3C%2Fli%3E%0A'
   26    42    >   ASSIGN                                                   !3, <array>
   27    43        ECHO                                                     '%09%3Cli+itemprop%3D%22name%22%3E%0A'
   28    44        FETCH_OBJ_R                                      ~27     !1, 'title'
         45        CONCAT                                           ~28     '%09%09%3Ca+itemprop%3D%22url%22+href%3D%22http%3A%2F%2Fwww.10leaves.ae%2F%22%3E', ~27
         46        CONCAT                                           ~29     ~28, '%3C%2Fa%3E'
         47        ECHO                                                     ~29
         48      > JMP                                                      ->55
   29    49    >   FETCH_OBJ_R                                      ~30     !1, 'level'
         50        IS_EQUAL                                                 ~30, '2'
         51      > JMPZ                                                     ~31, ->55
   30    52    >   FETCH_OBJ_R                                      ~33     !1, 'title'
         53        ASSIGN_DIM                                               !3
         54        OP_DATA                                                  ~33
   18    55    > > JMP                                                      ->27
         56    >   FE_FREE                                                  $18
   33    57      > JMPZ                                                     !0, ->59
   34    58    >   ECHO                                                     '%0A%09%3C%2Fli%3E'
   36    59    >   ECHO                                                     '%0A%3C%2Ful%3E'
         60      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
174.36 ms | 945 KiB | 16 Q