3v4l.org

run code in 500+ PHP versions simultaneously
<?php $array = [ [ "ARRIVAL" => '2022-03-08', "INFO" => "TEST", "V1_PROZ_WET" => 7, "V1_ABS_WET" => 200, "V1_PROZ" => 4, "V1_ABS" => 150, "V2_PROZ_WET" => 10, "V2_ABS_WET" => 250, "V2_PROZ" => 5, "V2_ABS" => 180, "BEZ" => "TEST", "WET_TOTAL" => 500, "DRY_TOTAL" => 300 ], [ "ARRIVAL" => '2022-03-07', "INFO" => "TEST", "V1_PROZ_WET" => 7, "V1_ABS_WET" => 200, "V1_PROZ" => 4, "V1_ABS" => 150, "V2_PROZ_WET" => 10, "V2_ABS_WET" => 250, "V2_PROZ" => 5, "V2_ABS" => 180, "BEZ" => "TEST", "WET_TOTAL" => 500, "DRY_TOTAL" => 300 ], [ "ARRIVAL" => '2022-03-06', "INFO" => "TEST", "V1_PROZ_WET" => 7, "V1_ABS_WET" => 200, "V1_PROZ" => 4, "V1_ABS" => 150, "V2_PROZ_WET" => 10, "V2_ABS_WET" => 250, "V2_PROZ" => 5, "V2_ABS" => 180, "BEZ" => "TEST", "WET_TOTAL" => 500, "DRY_TOTAL" => 300 ], ]; foreach ($array as &$row) { uksort($row, fn($a, $b) => ($b === 'INFO') <=> ($a === 'INFO') ?: ($b === 'BEZ') <=> ($a === 'BEZ') ?: ($b === 'WET_TOTAL') <=> ($a === 'WET_TOTAL') ?: ($b === 'DRY_TOTAL') <=> ($a === 'DRY_TOTAL') ?: ($a === 'ARRIVAL') <=> ($b === 'ARRIVAL') ?: str_contains($a, '_WET') <=> str_contains($b, '_WET') ?: str_contains($b, '_PROZ') <=> str_contains($a, '_PROZ') ?: str_contains($b, '_ABS') <=> str_contains($a, '_ABS') ?: $a <=> $b ); } var_export($array);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 125) Position 1 = 2, Position 2 = 9
Branch analysis from position: 2
2 jumps found. (Code = 126) Position 1 = 3, Position 2 = 9
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 9
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 9
filename:       /in/h76W2
function name:  (null)
number of ops:  14
compiled vars:  !0 = $array, !1 = $row
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
   51     1      > FE_RESET_RW                                          $3      !0, ->9
          2    > > FE_FETCH_RW                                                  $3, !1, ->9
   52     3    >   INIT_FCALL                                                   'uksort'
          4        SEND_REF                                                     !1
          5        DECLARE_LAMBDA_FUNCTION                              ~4      [0]
   62     6        SEND_VAL                                                     ~4
   52     7        DO_ICALL                                                     
   51     8      > JMP                                                          ->2
          9    >   FE_FREE                                                      $3
   64    10        INIT_FCALL                                                   'var_export'
         11        SEND_VAR                                                     !0
         12        DO_ICALL                                                     
         13      > RETURN                                                       1


Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h76W2
function name:  {closure:/in/h76W2:52}
number of ops:  45
compiled vars:  !0 = $a, !1 = $b
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   52     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
   53     2        IS_IDENTICAL                                         ~2      !1, 'INFO'
          3        IS_IDENTICAL                                         ~3      !0, 'INFO'
          4        SPACESHIP                                            ~4      ~2, ~3
          5        JMP_SET                                              ~5      ~4, ->10
   54     6        IS_IDENTICAL                                         ~6      !1, 'BEZ'
          7        IS_IDENTICAL                                         ~7      !0, 'BEZ'
          8        SPACESHIP                                            ~8      ~6, ~7
          9        QM_ASSIGN                                            ~5      ~8
         10        JMP_SET                                              ~9      ~5, ->15
   55    11        IS_IDENTICAL                                         ~10     !1, 'WET_TOTAL'
         12        IS_IDENTICAL                                         ~11     !0, 'WET_TOTAL'
         13        SPACESHIP                                            ~12     ~10, ~11
         14        QM_ASSIGN                                            ~9      ~12
         15        JMP_SET                                              ~13     ~9, ->20
   56    16        IS_IDENTICAL                                         ~14     !1, 'DRY_TOTAL'
         17        IS_IDENTICAL                                         ~15     !0, 'DRY_TOTAL'
         18        SPACESHIP                                            ~16     ~14, ~15
         19        QM_ASSIGN                                            ~13     ~16
         20        JMP_SET                                              ~17     ~13, ->25
   57    21        IS_IDENTICAL                                         ~18     !0, 'ARRIVAL'
         22        IS_IDENTICAL                                         ~19     !1, 'ARRIVAL'
         23        SPACESHIP                                            ~20     ~18, ~19
         24        QM_ASSIGN                                            ~17     ~20
         25        JMP_SET                                              ~21     ~17, ->30
   58    26        FRAMELESS_ICALL_2                str_contains        ~22     !0, '_WET'
         27        FRAMELESS_ICALL_2                str_contains        ~23     !1, '_WET'
         28        SPACESHIP                                            ~24     ~22, ~23
         29        QM_ASSIGN                                            ~21     ~24
         30        JMP_SET                                              ~25     ~21, ->35
   59    31        FRAMELESS_ICALL_2                str_contains        ~26     !1, '_PROZ'
         32        FRAMELESS_ICALL_2                str_contains        ~27     !0, '_PROZ'
         33        SPACESHIP                                            ~28     ~26, ~27
         34        QM_ASSIGN                                            ~25     ~28
         35        JMP_SET                                              ~29     ~25, ->40
   60    36        FRAMELESS_ICALL_2                str_contains        ~30     !1, '_ABS'
         37        FRAMELESS_ICALL_2                str_contains        ~31     !0, '_ABS'
         38        SPACESHIP                                            ~32     ~30, ~31
         39        QM_ASSIGN                                            ~29     ~32
         40        JMP_SET                                              ~33     ~29, ->43
   61    41        SPACESHIP                                            ~34     !0, !1
         42        QM_ASSIGN                                            ~33     ~34
         43      > RETURN                                                       ~33
   62    44*     > RETURN                                                       null

End of Dynamic Function 0

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
171.61 ms | 2032 KiB | 15 Q