3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = [ 1 => [1 => 11, 2 => 21 ,3 => 31], 2 => [1 => 21, 2 => 22], 3 => [1 => 31, 2 => 23 ,3 => 32], ]; foreach ($data as $k => $row) { foreach ($row as $i => $v) { $data[$k]['Total'] = ($data[$k]['Total'] ?? 0) + $v; $data['Total'][$i] = ($data['Total'][$i] ?? 0) + $v; } $data['Total']['Total'] = ($data['Total']['Total'] ?? 0) + $data[$k]['Total']; } var_export($data);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 2, Position 2 = 36
Branch analysis from position: 2
2 jumps found. (Code = 78) Position 1 = 3, Position 2 = 36
Branch analysis from position: 3
2 jumps found. (Code = 77) Position 1 = 5, Position 2 = 24
Branch analysis from position: 5
2 jumps found. (Code = 78) Position 1 = 6, Position 2 = 24
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 5
Branch analysis from position: 5
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 24
Branch analysis from position: 36
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 36
filename:       /in/8B7So
function name:  (null)
number of ops:  41
compiled vars:  !0 = $data, !1 = $row, !2 = $k, !3 = $v, !4 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
    9     1      > FE_RESET_R                                       $6      !0, ->36
          2    > > FE_FETCH_R                                       ~7      $6, !1, ->36
          3    >   ASSIGN                                                   !2, ~7
   10     4      > FE_RESET_R                                       $9      !1, ->24
          5    > > FE_FETCH_R                                       ~10     $9, !3, ->24
          6    >   ASSIGN                                                   !4, ~10
   11     7        FETCH_DIM_IS                                     ~14     !0, !2
          8        FETCH_DIM_IS                                     ~15     ~14, 'Total'
          9        COALESCE                                         ~16     ~15
         10        QM_ASSIGN                                        ~16     0
         11        ADD                                              ~17     ~16, !3
         12        FETCH_DIM_W                                      $12     !0, !2
         13        ASSIGN_DIM                                               $12, 'Total'
         14        OP_DATA                                                  ~17
   12    15        FETCH_DIM_IS                                     ~20     !0, 'Total'
         16        FETCH_DIM_IS                                     ~21     ~20, !4
         17        COALESCE                                         ~22     ~21
         18        QM_ASSIGN                                        ~22     0
         19        ADD                                              ~23     ~22, !3
         20        FETCH_DIM_W                                      $18     !0, 'Total'
         21        ASSIGN_DIM                                               $18, !4
         22        OP_DATA                                                  ~23
   10    23      > JMP                                                      ->5
         24    >   FE_FREE                                                  $9
   14    25        FETCH_DIM_IS                                     ~26     !0, 'Total'
         26        FETCH_DIM_IS                                     ~27     ~26, 'Total'
         27        COALESCE                                         ~28     ~27
         28        QM_ASSIGN                                        ~28     0
         29        FETCH_DIM_R                                      ~29     !0, !2
         30        FETCH_DIM_R                                      ~30     ~29, 'Total'
         31        ADD                                              ~31     ~28, ~30
         32        FETCH_DIM_W                                      $24     !0, 'Total'
         33        ASSIGN_DIM                                               $24, 'Total'
         34        OP_DATA                                                  ~31
    9    35      > JMP                                                      ->2
         36    >   FE_FREE                                                  $6
   16    37        INIT_FCALL                                               'var_export'
         38        SEND_VAR                                                 !0
         39        DO_ICALL                                                 
         40      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
147.71 ms | 1015 KiB | 14 Q