3v4l.org

run code in 300+ PHP versions simultaneously
New Raw <?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 = 5, Position 2 = 20
Branch analysis from position: 5
2 jumps found. (Code = 78) Position 1 = 6, Position 2 = 20
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 17
Branch analysis from position: 17
2 jumps found. (Code = 44) Position 1 = 19, Position 2 = 9
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 5
Branch analysis from position: 5
Branch analysis from position: 9
2 jumps found. (Code = 44) Position 1 = 19, Position 2 = 9
Branch analysis from position: 19
Branch analysis from position: 9
Branch analysis from position: 20
2 jumps found. (Code = 77) Position 1 = 25, Position 2 = 41
Branch analysis from position: 25
2 jumps found. (Code = 78) Position 1 = 26, Position 2 = 41
Branch analysis from position: 26
1 jumps found. (Code = 42) Position 1 = 38
Branch analysis from position: 38
2 jumps found. (Code = 44) Position 1 = 40, Position 2 = 29
Branch analysis from position: 40
1 jumps found. (Code = 42) Position 1 = 25
Branch analysis from position: 25
Branch analysis from position: 29
2 jumps found. (Code = 44) Position 1 = 40, Position 2 = 29
Branch analysis from position: 40
Branch analysis from position: 29
Branch analysis from position: 41
2 jumps found. (Code = 77) Position 1 = 43, Position 2 = 91
Branch analysis from position: 43
2 jumps found. (Code = 78) Position 1 = 44, Position 2 = 91
Branch analysis from position: 44
2 jumps found. (Code = 77) Position 1 = 49, Position 2 = 88
Branch analysis from position: 49
2 jumps found. (Code = 78) Position 1 = 50, Position 2 = 88
Branch analysis from position: 50
2 jumps found. (Code = 77) Position 1 = 55, Position 2 = 85
Branch analysis from position: 55
2 jumps found. (Code = 78) Position 1 = 56, Position 2 = 85
Branch analysis from position: 56
2 jumps found. (Code = 43) Position 1 = 60, Position 2 = 71
Branch analysis from position: 60
2 jumps found. (Code = 43) Position 1 = 67, Position 2 = 69
Branch analysis from position: 67
1 jumps found. (Code = 42) Position 1 = 70
Branch analysis from position: 70
2 jumps found. (Code = 43) Position 1 = 74, Position 2 = 80
Branch analysis from position: 74
1 jumps found. (Code = 42) Position 1 = 83
Branch analysis from position: 83
1 jumps found. (Code = 42) Position 1 = 55
Branch analysis from position: 55
Branch analysis from position: 80
1 jumps found. (Code = 42) Position 1 = 55
Branch analysis from position: 55
Branch analysis from position: 69
2 jumps found. (Code = 43) Position 1 = 74, Position 2 = 80
Branch analysis from position: 74
Branch analysis from position: 80
Branch analysis from position: 71
Branch analysis from position: 85
1 jumps found. (Code = 42) Position 1 = 49
Branch analysis from position: 49
Branch analysis from position: 85
Branch analysis from position: 88
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
Branch analysis from position: 88
Branch analysis from position: 91
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 91
Branch analysis from position: 41
Branch analysis from position: 20
filename:       /in/sRmOJ
function name:  (null)
number of ops:  93
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
-------------------------------------------------------------------------------------
    1     0  E >   ECHO                                                     'New+Raw%0A'
    4     1        ASSIGN                                                   !0, <array>
    6     2        ASSIGN                                                   !1, <array>
    7     3        ASSIGN                                                   !2, 0
    8     4      > FE_RESET_R                                       $21     !1, ->20
          5    > > FE_FETCH_R                                       ~22     $21, !3, ->20
          6    >   ASSIGN                                                   !4, ~22
    9     7        ASSIGN                                                   !5, 0
          8      > JMP                                                      ->17
   10     9    >   PRE_INC                                                  !2
   11    10        ADD                                              ~26     !4, 1
         11        CONCAT                                           ~27     'row', ~26
         12        CONCAT                                           ~30     'Category+', !2
         13        FETCH_DIM_W                                      $28     !0, ~27
         14        ASSIGN_DIM                                               $28
         15        OP_DATA                                                  ~30
    9    16        PRE_INC                                                  !5
         17    >   IS_SMALLER                                               !5, !3
         18      > JMPNZ                                                    ~32, ->9
    8    19    > > JMP                                                      ->5
         20    >   FE_FREE                                                  $21
   15    21        ASSIGN                                                   !6, <array>
   17    22        ASSIGN                                                   !7, <array>
   18    23        ASSIGN                                                   !8, 0
   19    24      > FE_RESET_R                                       $36     !7, ->41
         25    > > FE_FETCH_R                                       ~37     $36, !9, ->41
         26    >   ASSIGN                                                   !10, ~37
   21    27        ASSIGN                                                   !5, 0
         28      > JMP                                                      ->38
   22    29    >   PRE_INC                                                  !8
   23    30        ADD                                              ~41     !10, 1
         31        CONCAT                                           ~42     'cont', ~41
         32        CONCAT                                           ~45     'row', !8
         33        FETCH_DIM_R                                      ~46     !0, ~45
         34        FETCH_DIM_W                                      $43     !6, ~42
         35        ASSIGN_DIM                                               $43
         36        OP_DATA                                                  ~46
   21    37        PRE_INC                                                  !5
         38    >   IS_SMALLER                                               !5, !9
         39      > JMPNZ                                                    ~48, ->29
   19    40    > > JMP                                                      ->25
         41    >   FE_FREE                                                  $36
   27    42      > FE_RESET_R                                       $49     !6, ->91
         43    > > FE_FETCH_R                                       ~50     $49, !1, ->91
         44    >   ASSIGN                                                   !11, ~50
   28    45        ECHO                                                     '%0A++++'
   29    46        ASSIGN                                                   !12, <true>
   30    47        ECHO                                                     '++++'
         48      > FE_RESET_R                                       $53     !1, ->88
         49    > > FE_FETCH_R                                       ~54     $53, !13, ->88
         50    >   ASSIGN                                                   !14, ~54
   31    51        ECHO                                                     '++++++++'
         52        ASSIGN                                                   !15, <true>
   32    53        ECHO                                                     '++++++++'
         54      > FE_RESET_R                                       $57     !13, ->85
         55    > > FE_FETCH_R                                       ~58     $57, !16, ->85
         56    >   ASSIGN                                                   !17, ~58
   33    57        ECHO                                                     '++++++++++++'
   34    58        ECHO                                                     '++++++++++++'
         59      > JMPZ                                                     !12, ->71
   35    60    >   ECHO                                                     '++++++++++++++++'
         61        ASSIGN                                                   !12, <false>
   36    62        ECHO                                                     '++++++++++++++++'
   37    63        ECHO                                                     '++++++++++++++++'
         64        COUNT                                            ~61     !13
         65        IS_EQUAL                                                 ~61, 2
         66      > JMPZ                                                     ~62, ->69
   38    67    >   ECHO                                                     '++++++++++++++++++++%3Cul+class%3D%22foundry-listing+two-up%22%3E%0A++++++++++++++++'
         68      > JMP                                                      ->70
   40    69    >   ECHO                                                     '++++++++++++++++++++%3Cul+class%3D%22foundry-listing%22%3E%0A++++++++++++++++'
   42    70    >   ECHO                                                     '++++++++++++'
   43    71    >   ECHO                                                     '++++++++++++'
   44    72        ECHO                                                     '++++++++++++'
         73      > JMPZ                                                     !15, ->80
   45    74    >   ECHO                                                     '++++++++++++++++%3Cli+class%3D%22first%22%3E'
         75        ECHO                                                     !16
         76        ECHO                                                     '%3C%2Fli%3E%0A++++++++++++++++'
   46    77        ASSIGN                                                   !15, <false>
   47    78        ECHO                                                     '++++++++++++'
         79      > JMP                                                      ->83
   48    80    >   ECHO                                                     '++++++++++++++++%3Cli%3E'
         81        ECHO                                                     !16
         82        ECHO                                                     '%3C%2Fli%3E%0A++++++++++++'
   50    83    >   ECHO                                                     '++++++++'
   32    84      > JMP                                                      ->55
         85    >   FE_FREE                                                  $57
   51    86        ECHO                                                     '++++'
   30    87      > JMP                                                      ->49
         88    >   FE_FREE                                                  $53
   52    89        ECHO                                                     '++++%3C%2Ful%3E%0A'
   27    90      > JMP                                                      ->43
         91    >   FE_FREE                                                  $49
   53    92      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
160.08 ms | 1407 KiB | 13 Q