3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ "Feedback 13 okt", "Feedback 11 okt", "Feedback 12 okt", "Sweet", "Feedback 9 okt", "Feedback 6 okt", "Feedback 8 jun", "Fixes", "Realisation", "Feedback 22 mar", "Do something", "Feedback 3 maj", "Feedback 1 dec", ]; $mmm = array_flip([ "jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec" ]); usort( $array, fn($a, $b) => strtok($a, ' ') <=> strtok($b, ' ') ?: (sscanf($a, "Feedback %d %s", $aDay, $aMon) ? [$mmm[$aMon] ?? 13, $aDay] : [13, 32]) <=> (sscanf($b, "Feedback %d %s", $bDay, $bMon) ? [$mmm[$bMon] ?? 13, $bDay] : [13, 32]) ?: natcasecmp($a, $b) ); var_export($array);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/eLVLf
function name:  (null)
number of ops:  19
compiled vars:  !0 = $array, !1 = $mmm, !2 = $aDay, !3 = $aMon, !4 = $bDay, !5 = $bMon
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
   19     1        INIT_FCALL                                               'array_flip'
   20     2        SEND_VAL                                                 <array>
          3        DO_ICALL                                         $7      
   19     4        ASSIGN                                                   !1, $7
   25     5        INIT_FCALL                                               'usort'
   26     6        SEND_REF                                                 !0
   27     7        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FeLVLf%3A27%240'
          8        BIND_LEXICAL                                             ~9, !2
          9        BIND_LEXICAL                                             ~9, !3
         10        BIND_LEXICAL                                             ~9, !1
         11        BIND_LEXICAL                                             ~9, !4
         12        BIND_LEXICAL                                             ~9, !5
   39    13        SEND_VAL                                                 ~9
         14        DO_ICALL                                                 
   40    15        INIT_FCALL                                               'var_export'
         16        SEND_VAR                                                 !0
         17        DO_ICALL                                                 
         18      > RETURN                                                   1

Function %00%7Bclosure%7D%2Fin%2FeLVLf%3A27%240:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 31
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
2 jumps found. (Code = 43) Position 1 = 39, Position 2 = 46
Branch analysis from position: 39
1 jumps found. (Code = 42) Position 1 = 47
Branch analysis from position: 47
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 46
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 31
2 jumps found. (Code = 43) Position 1 = 39, Position 2 = 46
Branch analysis from position: 39
Branch analysis from position: 46
filename:       /in/eLVLf
function name:  {closure}
number of ops:  57
compiled vars:  !0 = $a, !1 = $b, !2 = $aDay, !3 = $aMon, !4 = $mmm, !5 = $bDay, !6 = $bMon
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   27     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        BIND_STATIC                                              !2
          3        BIND_STATIC                                              !3
          4        BIND_STATIC                                              !4
          5        BIND_STATIC                                              !5
          6        BIND_STATIC                                              !6
   28     7        INIT_FCALL                                               'strtok'
          8        SEND_VAR                                                 !0
          9        SEND_VAL                                                 '+'
         10        DO_ICALL                                         $7      
         11        INIT_FCALL                                               'strtok'
         12        SEND_VAR                                                 !1
         13        SEND_VAL                                                 '+'
         14        DO_ICALL                                         $8      
         15        SPACESHIP                                        ~9      $7, $8
         16        JMP_SET                                          ~10     ~9, ->49
   30    17        INIT_FCALL                                               'sscanf'
         18        SEND_VAR                                                 !0
         19        SEND_VAL                                                 'Feedback+%25d+%25s'
         20        SEND_REF                                                 !2
         21        SEND_REF                                                 !3
         22        DO_ICALL                                         $11     
         23      > JMPZ                                                     $11, ->31
   31    24    >   FETCH_DIM_IS                                     ~12     !4, !3
         25        COALESCE                                         ~13     ~12
         26        QM_ASSIGN                                        ~13     13
         27        INIT_ARRAY                                       ~14     ~13
         28        ADD_ARRAY_ELEMENT                                ~14     !2
         29        QM_ASSIGN                                        ~15     ~14
         30      > JMP                                                      ->32
   32    31    >   QM_ASSIGN                                        ~15     <array>
   34    32    >   INIT_FCALL                                               'sscanf'
         33        SEND_VAR                                                 !1
         34        SEND_VAL                                                 'Feedback+%25d+%25s'
         35        SEND_REF                                                 !5
         36        SEND_REF                                                 !6
         37        DO_ICALL                                         $16     
         38      > JMPZ                                                     $16, ->46
   35    39    >   FETCH_DIM_IS                                     ~17     !4, !6
         40        COALESCE                                         ~18     ~17
         41        QM_ASSIGN                                        ~18     13
         42        INIT_ARRAY                                       ~19     ~18
         43        ADD_ARRAY_ELEMENT                                ~19     !5
         44        QM_ASSIGN                                        ~20     ~19
         45      > JMP                                                      ->47
   36    46    >   QM_ASSIGN                                        ~20     <array>
         47    >   SPACESHIP                                        ~21     ~15, ~20
         48        QM_ASSIGN                                        ~10     ~21
         49        JMP_SET                                          ~22     ~10, ->55
   38    50        INIT_FCALL_BY_NAME                                       'natcasecmp'
         51        SEND_VAR_EX                                              !0
         52        SEND_VAR_EX                                              !1
         53        DO_FCALL                                      0  $23     
         54        QM_ASSIGN                                        ~22     $23
         55      > RETURN                                                   ~22
   39    56*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FeLVLf%3A27%240

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
150.17 ms | 1404 KiB | 23 Q