3v4l.org

run code in 500+ PHP versions simultaneously
<?php $a = [ 101 => 5, 109 => 100, 220 => 50, 231 => 45, 245 => 90 ]; $b = [ 'PRO' => 12, 'LOG' => 15, 'DEV' => 100 ]; $difference = 0; foreach ($a as &$minuend) { while ($minuend && ($b || $difference < 0)) { $suprahend = $difference < 0 ? -$difference : array_shift($b); $difference = $minuend - $suprahend; $minuend = max(0, $difference); } } var_export($a);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 125) Position 1 = 4, Position 2 = 27
Branch analysis from position: 4
2 jumps found. (Code = 126) Position 1 = 5, Position 2 = 27
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 20
Branch analysis from position: 20
2 jumps found. (Code = 46) Position 1 = 21, Position 2 = 25
Branch analysis from position: 21
2 jumps found. (Code = 47) Position 1 = 22, Position 2 = 24
Branch analysis from position: 22
2 jumps found. (Code = 44) Position 1 = 26, Position 2 = 6
Branch analysis from position: 26
1 jumps found. (Code = 42) Position 1 = 4
Branch analysis from position: 4
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 11
Branch analysis from position: 8
1 jumps found. (Code = 42) Position 1 = 15
Branch analysis from position: 15
2 jumps found. (Code = 46) Position 1 = 21, Position 2 = 25
Branch analysis from position: 21
Branch analysis from position: 25
Branch analysis from position: 11
2 jumps found. (Code = 46) Position 1 = 21, Position 2 = 25
Branch analysis from position: 21
Branch analysis from position: 25
Branch analysis from position: 24
Branch analysis from position: 25
Branch analysis from position: 27
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 27
filename:       /in/WkesI
function name:  (null)
number of ops:  32
compiled vars:  !0 = $a, !1 = $b, !2 = $difference, !3 = $minuend, !4 = $suprahend
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
   10     1        ASSIGN                                                       !1, <array>
   16     2        ASSIGN                                                       !2, 0
   17     3      > FE_RESET_RW                                          $8      !0, ->27
          4    > > FE_FETCH_RW                                                  $8, !3, ->27
   18     5    > > JMP                                                          ->20
   19     6    >   IS_SMALLER                                                   !2, 0
          7      > JMPZ                                                         ~9, ->11
          8    >   MUL                                                  ~10     !2, -1
          9        QM_ASSIGN                                            ~11     ~10
         10      > JMP                                                          ->15
         11    >   INIT_FCALL                                                   'array_shift'
         12        SEND_REF                                                     !1
         13        DO_ICALL                                             $12     
         14        QM_ASSIGN                                            ~11     $12
         15    >   ASSIGN                                                       !4, ~11
   20    16        SUB                                                  ~14     !3, !4
         17        ASSIGN                                                       !2, ~14
   21    18        FRAMELESS_ICALL_2                max                 ~16     0, !2
         19        ASSIGN                                                       !3, ~16
   18    20    > > JMPZ_EX                                              ~18     !3, ->25
         21    > > JMPNZ_EX                                             ~19     !1, ->24
         22    >   IS_SMALLER                                           ~20     !2, 0
         23        BOOL                                                 ~19     ~20
         24    >   BOOL                                                 ~18     ~19
         25    > > JMPNZ                                                        ~18, ->6
   17    26    > > JMP                                                          ->4
         27    >   FE_FREE                                                      $8
   24    28        INIT_FCALL                                                   'var_export'
         29        SEND_VAR                                                     !0
         30        DO_ICALL                                                     
         31      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
211.65 ms | 2036 KiB | 15 Q