3v4l.org

run code in 300+ PHP versions simultaneously
<?php //retrieved from database $kategorier = [ ['Kategori' => 'Burger'], ['Kategori' => 'Pizza'], ['Kategori' => 'Pizza2'], ['Kategori' => 'Pizza3'], ['Kategori' => 'Chinaboks'], ['Kategori' => 'Artiskok'], ['Kategori' => 'Durum'], ['Kategori' => 'Asiatisk'], ['Kategori' => 'Asiatisk2'], ['Kategori' => 'Asiatisk20'], ['Kategori' => 'Asiatisk3'], ]; if ($kategorier) { $kategorier = array_column($kategorier, 'Kategori'); //sort the resulting array as a human would natsort($kategorier); } $previousLetter = null; var_dump($kategorier); #debug code - remove ?> <dl> <?php foreach ($kategorier as $kategori) { $currentLetter = strtoupper($kategori[0]); if ($previousLetter !== $currentLetter) { ?> <dt><h2><?php echo $currentLetter; ?></h2></dt> <?php } ?> <dd><?php echo $kategori; ?></dd> <?php $previousLetter = $currentLetter; } ?> <dl>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 2, Position 2 = 10
Branch analysis from position: 2
2 jumps found. (Code = 77) Position 1 = 16, Position 2 = 32
Branch analysis from position: 16
2 jumps found. (Code = 78) Position 1 = 17, Position 2 = 32
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 27
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 27
Branch analysis from position: 32
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 32
Branch analysis from position: 10
filename:       /in/hETha
function name:  (null)
number of ops:  35
compiled vars:  !0 = $kategorier, !1 = $previousLetter, !2 = $kategori, !3 = $currentLetter
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   ASSIGN                                                   !0, <array>
   18     1      > JMPZ                                                     !0, ->10
   19     2    >   INIT_FCALL                                               'array_column'
          3        SEND_VAR                                                 !0
          4        SEND_VAL                                                 'Kategori'
          5        DO_ICALL                                         $5      
          6        ASSIGN                                                   !0, $5
   21     7        INIT_FCALL                                               'natsort'
          8        SEND_REF                                                 !0
          9        DO_ICALL                                                 
   24    10    >   ASSIGN                                                   !1, null
   25    11        INIT_FCALL                                               'var_dump'
         12        SEND_VAR                                                 !0
         13        DO_ICALL                                                 
   27    14        ECHO                                                     '%0A%3Cdl%3E%0A+'
   30    15      > FE_RESET_R                                       $10     !0, ->32
         16    > > FE_FETCH_R                                               $10, !2, ->32
   31    17    >   INIT_FCALL                                               'strtoupper'
         18        FETCH_DIM_R                                      ~11     !2, 0
         19        SEND_VAL                                                 ~11
         20        DO_ICALL                                         $12     
         21        ASSIGN                                                   !3, $12
   32    22        IS_NOT_IDENTICAL                                         !1, !3
         23      > JMPZ                                                     ~14, ->27
   33    24    >   ECHO                                                     '+++++++++%3Cdt%3E%3Ch2%3E'
         25        ECHO                                                     !3
         26        ECHO                                                     '%3C%2Fh2%3E%3C%2Fdt%3E%0A+++++'
   35    27    >   ECHO                                                     '+++++%3Cdd%3E'
         28        ECHO                                                     !2
         29        ECHO                                                     '%3C%2Fdd%3E%0A+++++'
   36    30        ASSIGN                                                   !1, !3
   30    31      > JMP                                                      ->16
         32    >   FE_FREE                                                  $10
   37    33        ECHO                                                     '++++++%0A+%3Cdl%3E'
   38    34      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
145.89 ms | 1006 KiB | 17 Q