3v4l.org

run code in 300+ 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.0.0


preferences:
153.05 ms | 1014 KiB | 17 Q