3v4l.org

run code in 300+ PHP versions simultaneously
<?php $_rows = array(); //num of columns each row should have $rows = array(2, 3, 3, 3, 2, 3, 3, 3, 3, 3); $catIncrement = 0; foreach($rows as $rowNumber => $numColumns) { for($i = 0; $i < $numColumns; $i++) { $catIncrement++; $_rows['row' . ($rowNumber + 1)][] = 'Category ' . $catIncrement; } } $_containers = array(); //num of rows in each container $containers = array(1, 3, 1, 5); $rowIncrement = 0; foreach($containers as $contNumber => $numRows) { for($i = 0; $i < $numRows; $i++) { $rowIncrement++; $_containers['cont' . ($contNumber + 1)][] = $_rows['row' . $rowIncrement]; } } foreach($_containers as $_contKey => $rows):?> <?php $firstRow = true; ?> <?php foreach($rows as $rowKey => $categories): ?> <?php $firstCategory = true; ?> <?php foreach($categories as $catKey => $category): ?> <?php //first row -- print open <ul> ?> <?php if($firstRow): ?> <?php $firstRow = false; ?> <?php //if only 2 categories in this row ?> <?php if(count($categories) == 2): ?> <ul class="foundry-listing two-up"> <?php else: ?> <ul class="foundry-listing"> <?php endif; ?> <?php endif; ?> <?php //first category in each row ?> <?php if($firstCategory): ?> <li class="first"><?php echo $category; ?></li> <?php $firstCategory = false; ?> <?php else: ?> <li><?php echo $category; ?></li> <?php endif; ?> <?php endforeach; ?> <?php endforeach; ?> </ul> <?php endforeach; ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 4, Position 2 = 19
Branch analysis from position: 4
2 jumps found. (Code = 78) Position 1 = 5, Position 2 = 19
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 8
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 4
Branch analysis from position: 4
Branch analysis from position: 8
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 8
Branch analysis from position: 18
Branch analysis from position: 8
Branch analysis from position: 19
2 jumps found. (Code = 77) Position 1 = 24, Position 2 = 40
Branch analysis from position: 24
2 jumps found. (Code = 78) Position 1 = 25, Position 2 = 40
Branch analysis from position: 25
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 28
Branch analysis from position: 39
1 jumps found. (Code = 42) Position 1 = 24
Branch analysis from position: 24
Branch analysis from position: 28
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 28
Branch analysis from position: 39
Branch analysis from position: 28
Branch analysis from position: 40
2 jumps found. (Code = 77) Position 1 = 42, Position 2 = 90
Branch analysis from position: 42
2 jumps found. (Code = 78) Position 1 = 43, Position 2 = 90
Branch analysis from position: 43
2 jumps found. (Code = 77) Position 1 = 48, Position 2 = 87
Branch analysis from position: 48
2 jumps found. (Code = 78) Position 1 = 49, Position 2 = 87
Branch analysis from position: 49
2 jumps found. (Code = 77) Position 1 = 54, Position 2 = 84
Branch analysis from position: 54
2 jumps found. (Code = 78) Position 1 = 55, Position 2 = 84
Branch analysis from position: 55
2 jumps found. (Code = 43) Position 1 = 59, Position 2 = 70
Branch analysis from position: 59
2 jumps found. (Code = 43) Position 1 = 66, Position 2 = 68
Branch analysis from position: 66
1 jumps found. (Code = 42) Position 1 = 69
Branch analysis from position: 69
2 jumps found. (Code = 43) Position 1 = 73, Position 2 = 79
Branch analysis from position: 73
1 jumps found. (Code = 42) Position 1 = 82
Branch analysis from position: 82
1 jumps found. (Code = 42) Position 1 = 54
Branch analysis from position: 54
Branch analysis from position: 79
1 jumps found. (Code = 42) Position 1 = 54
Branch analysis from position: 54
Branch analysis from position: 68
2 jumps found. (Code = 43) Position 1 = 73, Position 2 = 79
Branch analysis from position: 73
Branch analysis from position: 79
Branch analysis from position: 70
Branch analysis from position: 84
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
Branch analysis from position: 84
Branch analysis from position: 87
1 jumps found. (Code = 42) Position 1 = 42
Branch analysis from position: 42
Branch analysis from position: 87
Branch analysis from position: 90
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 90
Branch analysis from position: 40
Branch analysis from position: 19
filename:       /in/YeZkD
function name:  (null)
number of ops:  92
compiled vars:  !0 = $_rows, !1 = $rows, !2 = $catIncrement, !3 = $numColumns, !4 = $rowNumber, !5 = $i, !6 = $_containers, !7 = $containers, !8 = $rowIncrement, !9 = $numRows, !10 = $contNumber, !11 = $_contKey, !12 = $firstRow, !13 = $categories, !14 = $rowKey, !15 = $firstCategory, !16 = $category, !17 = $catKey
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
    5     1        ASSIGN                                                   !1, <array>
    6     2        ASSIGN                                                   !2, 0
    7     3      > FE_RESET_R                                       $21     !1, ->19
          4    > > FE_FETCH_R                                       ~22     $21, !3, ->19
          5    >   ASSIGN                                                   !4, ~22
    8     6        ASSIGN                                                   !5, 0
          7      > JMP                                                      ->16
    9     8    >   PRE_INC                                                  !2
   10     9        ADD                                              ~26     !4, 1
         10        CONCAT                                           ~27     'row', ~26
         11        CONCAT                                           ~30     'Category+', !2
         12        FETCH_DIM_W                                      $28     !0, ~27
         13        ASSIGN_DIM                                               $28
         14        OP_DATA                                                  ~30
    8    15        PRE_INC                                                  !5
         16    >   IS_SMALLER                                               !5, !3
         17      > JMPNZ                                                    ~32, ->8
    7    18    > > JMP                                                      ->4
         19    >   FE_FREE                                                  $21
   14    20        ASSIGN                                                   !6, <array>
   16    21        ASSIGN                                                   !7, <array>
   17    22        ASSIGN                                                   !8, 0
   18    23      > FE_RESET_R                                       $36     !7, ->40
         24    > > FE_FETCH_R                                       ~37     $36, !9, ->40
         25    >   ASSIGN                                                   !10, ~37
   20    26        ASSIGN                                                   !5, 0
         27      > JMP                                                      ->37
   21    28    >   PRE_INC                                                  !8
   22    29        ADD                                              ~41     !10, 1
         30        CONCAT                                           ~42     'cont', ~41
         31        CONCAT                                           ~45     'row', !8
         32        FETCH_DIM_R                                      ~46     !0, ~45
         33        FETCH_DIM_W                                      $43     !6, ~42
         34        ASSIGN_DIM                                               $43
         35        OP_DATA                                                  ~46
   20    36        PRE_INC                                                  !5
         37    >   IS_SMALLER                                               !5, !9
         38      > JMPNZ                                                    ~48, ->28
   18    39    > > JMP                                                      ->24
         40    >   FE_FREE                                                  $36
   26    41      > FE_RESET_R                                       $49     !6, ->90
         42    > > FE_FETCH_R                                       ~50     $49, !1, ->90
         43    >   ASSIGN                                                   !11, ~50
   27    44        ECHO                                                     '%0A++++'
   28    45        ASSIGN                                                   !12, <true>
   29    46        ECHO                                                     '++++'
         47      > FE_RESET_R                                       $53     !1, ->87
         48    > > FE_FETCH_R                                       ~54     $53, !13, ->87
         49    >   ASSIGN                                                   !14, ~54
   30    50        ECHO                                                     '++++++++'
         51        ASSIGN                                                   !15, <true>
   31    52        ECHO                                                     '++++++++'
         53      > FE_RESET_R                                       $57     !13, ->84
         54    > > FE_FETCH_R                                       ~58     $57, !16, ->84
         55    >   ASSIGN                                                   !17, ~58
   32    56        ECHO                                                     '++++++++++++'
   33    57        ECHO                                                     '++++++++++++'
         58      > JMPZ                                                     !12, ->70
   34    59    >   ECHO                                                     '++++++++++++++++'
         60        ASSIGN                                                   !12, <false>
   35    61        ECHO                                                     '++++++++++++++++'
   36    62        ECHO                                                     '++++++++++++++++'
         63        COUNT                                            ~61     !13
         64        IS_EQUAL                                                 ~61, 2
         65      > JMPZ                                                     ~62, ->68
   37    66    >   ECHO                                                     '++++++++++++++++++++%3Cul+class%3D%22foundry-listing+two-up%22%3E%0A++++++++++++++++'
         67      > JMP                                                      ->69
   39    68    >   ECHO                                                     '++++++++++++++++++++%3Cul+class%3D%22foundry-listing%22%3E%0A++++++++++++++++'
   41    69    >   ECHO                                                     '++++++++++++'
   42    70    >   ECHO                                                     '++++++++++++'
   43    71        ECHO                                                     '++++++++++++'
         72      > JMPZ                                                     !15, ->79
   44    73    >   ECHO                                                     '++++++++++++++++%3Cli+class%3D%22first%22%3E'
         74        ECHO                                                     !16
         75        ECHO                                                     '%3C%2Fli%3E%0A++++++++++++++++'
   45    76        ASSIGN                                                   !15, <false>
   46    77        ECHO                                                     '++++++++++++'
         78      > JMP                                                      ->82
   47    79    >   ECHO                                                     '++++++++++++++++%3Cli%3E'
         80        ECHO                                                     !16
         81        ECHO                                                     '%3C%2Fli%3E%0A++++++++++++'
   49    82    >   ECHO                                                     '++++++++'
   31    83      > JMP                                                      ->54
         84    >   FE_FREE                                                  $57
   50    85        ECHO                                                     '++++'
   29    86      > JMP                                                      ->48
         87    >   FE_FREE                                                  $53
   51    88        ECHO                                                     '++++%3C%2Ful%3E%0A'
   26    89      > JMP                                                      ->42
         90    >   FE_FREE                                                  $49
   52    91      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
161.57 ms | 1403 KiB | 13 Q