3v4l.org

run code in 500+ PHP versions simultaneously
<?php $amount = $qty = $code = $id = range(1, 5000); //dry-run $op = '%s executed in %.8f seconds'; $start = $end = microtime(true); $max = count($id); $data = []; for ($i=0; $i<ceil($max/2); $i++) { $z = $max-($i+1); $data[$i] = [ 'id' => $id[$i], 'code' => $code[$i], 'qty' => $qty[$i], 'amount' => $amount[$i] ]; $data[$z] = [ 'id' => $id[$z], 'code' => $code[$z], 'qty' => $qty[$z], 'amount' => $amount[$z] ]; } //end dry-run $start = microtime(true); $max = count($id); $half = ceil($max/2); $data = []; for ($i=0; $i<$half; $i++) { $z = $max-($i+1); $data[$i] = [ 'id' => $id[$i], 'code' => $code[$i], 'qty' => $qty[$i], 'amount' => $amount[$i] ]; $data[$z] = [ 'id' => $id[$z], 'code' => $code[$z], 'qty' => $qty[$z], 'amount' => $amount[$z] ]; } $end = microtime(true); printf($op, 'for ceil', $end - $start);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 19
Branch analysis from position: 49
1 jumps found. (Code = 42) Position 1 = 87
Branch analysis from position: 87
2 jumps found. (Code = 44) Position 1 = 89, Position 2 = 63
Branch analysis from position: 89
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 63
2 jumps found. (Code = 44) Position 1 = 89, Position 2 = 63
Branch analysis from position: 89
Branch analysis from position: 63
Branch analysis from position: 19
2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 19
Branch analysis from position: 49
Branch analysis from position: 19
filename:       /in/Mg95n
function name:  (null)
number of ops:  100
compiled vars:  !0 = $amount, !1 = $qty, !2 = $code, !3 = $id, !4 = $op, !5 = $start, !6 = $end, !7 = $max, !8 = $data, !9 = $i, !10 = $z, !11 = $half
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                                   'range'
          1        SEND_VAL                                                     1
          2        SEND_VAL                                                     5000
          3        DO_ICALL                                             $12     
          4        ASSIGN                                               ~13     !3, $12
          5        ASSIGN                                               ~14     !2, ~13
          6        ASSIGN                                               ~15     !1, ~14
          7        ASSIGN                                                       !0, ~15
    6     8        ASSIGN                                                       !4, '%25s+executed+in+%25.8f+seconds'
    7     9        INIT_FCALL                                                   'microtime'
         10        SEND_VAL                                                     <true>
         11        DO_ICALL                                             $18     
         12        ASSIGN                                               ~19     !6, $18
         13        ASSIGN                                                       !5, ~19
    8    14        COUNT                                                ~21     !3
         15        ASSIGN                                                       !7, ~21
    9    16        ASSIGN                                                       !8, <array>
   10    17        ASSIGN                                                       !9, 0
         18      > JMP                                                          ->43
   11    19    >   ADD                                                  ~25     !9, 1
         20        SUB                                                  ~26     !7, ~25
         21        ASSIGN                                                       !10, ~26
   13    22        FETCH_DIM_R                                          ~29     !3, !9
         23        INIT_ARRAY                                           ~30     ~29, 'id'
   14    24        FETCH_DIM_R                                          ~31     !2, !9
         25        ADD_ARRAY_ELEMENT                                    ~30     ~31, 'code'
   15    26        FETCH_DIM_R                                          ~32     !1, !9
         27        ADD_ARRAY_ELEMENT                                    ~30     ~32, 'qty'
   16    28        FETCH_DIM_R                                          ~33     !0, !9
         29        ADD_ARRAY_ELEMENT                                    ~30     ~33, 'amount'
   12    30        ASSIGN_DIM                                                   !8, !9
   16    31        OP_DATA                                                      ~30
   20    32        FETCH_DIM_R                                          ~35     !3, !10
         33        INIT_ARRAY                                           ~36     ~35, 'id'
   21    34        FETCH_DIM_R                                          ~37     !2, !10
         35        ADD_ARRAY_ELEMENT                                    ~36     ~37, 'code'
   22    36        FETCH_DIM_R                                          ~38     !1, !10
         37        ADD_ARRAY_ELEMENT                                    ~36     ~38, 'qty'
   23    38        FETCH_DIM_R                                          ~39     !0, !10
         39        ADD_ARRAY_ELEMENT                                    ~36     ~39, 'amount'
   19    40        ASSIGN_DIM                                                   !8, !10
   23    41        OP_DATA                                                      ~36
   10    42        PRE_INC                                                      !9
         43    >   INIT_FCALL                                                   'ceil'
         44        DIV                                                  ~41     !7, 2
         45        SEND_VAL                                                     ~41
         46        DO_ICALL                                             $42     
         47        IS_SMALLER                                                   !9, $42
         48      > JMPNZ                                                        ~43, ->19
   28    49    >   INIT_FCALL                                                   'microtime'
         50        SEND_VAL                                                     <true>
         51        DO_ICALL                                             $44     
         52        ASSIGN                                                       !5, $44
   30    53        COUNT                                                ~46     !3
         54        ASSIGN                                                       !7, ~46
   31    55        INIT_FCALL                                                   'ceil'
         56        DIV                                                  ~48     !7, 2
         57        SEND_VAL                                                     ~48
         58        DO_ICALL                                             $49     
         59        ASSIGN                                                       !11, $49
   32    60        ASSIGN                                                       !8, <array>
   33    61        ASSIGN                                                       !9, 0
         62      > JMP                                                          ->87
   34    63    >   ADD                                                  ~53     !9, 1
         64        SUB                                                  ~54     !7, ~53
         65        ASSIGN                                                       !10, ~54
   36    66        FETCH_DIM_R                                          ~57     !3, !9
         67        INIT_ARRAY                                           ~58     ~57, 'id'
   37    68        FETCH_DIM_R                                          ~59     !2, !9
         69        ADD_ARRAY_ELEMENT                                    ~58     ~59, 'code'
   38    70        FETCH_DIM_R                                          ~60     !1, !9
         71        ADD_ARRAY_ELEMENT                                    ~58     ~60, 'qty'
   39    72        FETCH_DIM_R                                          ~61     !0, !9
         73        ADD_ARRAY_ELEMENT                                    ~58     ~61, 'amount'
   35    74        ASSIGN_DIM                                                   !8, !9
   39    75        OP_DATA                                                      ~58
   43    76        FETCH_DIM_R                                          ~63     !3, !10
         77        INIT_ARRAY                                           ~64     ~63, 'id'
   44    78        FETCH_DIM_R                                          ~65     !2, !10
         79        ADD_ARRAY_ELEMENT                                    ~64     ~65, 'code'
   45    80        FETCH_DIM_R                                          ~66     !1, !10
         81        ADD_ARRAY_ELEMENT                                    ~64     ~66, 'qty'
   46    82        FETCH_DIM_R                                          ~67     !0, !10
         83        ADD_ARRAY_ELEMENT                                    ~64     ~67, 'amount'
   42    84        ASSIGN_DIM                                                   !8, !10
   46    85        OP_DATA                                                      ~64
   33    86        PRE_INC                                                      !9
         87    >   IS_SMALLER                                                   !9, !11
         88      > JMPNZ                                                        ~69, ->63
   50    89    >   INIT_FCALL                                                   'microtime'
         90        SEND_VAL                                                     <true>
         91        DO_ICALL                                             $70     
         92        ASSIGN                                                       !6, $70
   51    93        INIT_FCALL                                                   'printf'
         94        SEND_VAR                                                     !4
         95        SEND_VAL                                                     'for+ceil'
         96        SUB                                                  ~72     !6, !5
         97        SEND_VAL                                                     ~72
         98        DO_ICALL                                                     
         99      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
159.29 ms | 2453 KiB | 17 Q