3v4l.org

run code in 500+ PHP versions simultaneously
<?php $arr = [ ['Cup red' => 2], ['TV-1' => 1], ['TV-1' => 1], ['Table' => 1], ['Table' => 1], ['Cup white' => 1], ['Cup white' => 3], ['Cup green' => 4], ]; $keyStore = []; foreach($arr as $record) { foreach($record as $key => $value) { $keyStore[$key] = $key; } } $result = []; foreach ($arr as $key0 => $value) { foreach ($value as $key1 => $item) { if (in_array($key1, $keyStore)) { $result[$key1] = isset($result[$key1]) ? $result[$key1] += $item : $result[$key1] = $item; } } } echo '<pre>'; print_r($result); echo '</pre>';
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 12
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 12
Branch analysis from position: 4
2 jumps found. (Code = 77) Position 1 = 5, Position 2 = 10
Branch analysis from position: 5
2 jumps found. (Code = 78) Position 1 = 6, Position 2 = 10
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 5
Branch analysis from position: 5
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 10
Branch analysis from position: 12
2 jumps found. (Code = 77) Position 1 = 15, Position 2 = 36
Branch analysis from position: 15
2 jumps found. (Code = 78) Position 1 = 16, Position 2 = 36
Branch analysis from position: 16
2 jumps found. (Code = 77) Position 1 = 18, Position 2 = 34
Branch analysis from position: 18
2 jumps found. (Code = 78) Position 1 = 19, Position 2 = 34
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 22, Position 2 = 33
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 28
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
1 jumps found. (Code = 42) Position 1 = 18
Branch analysis from position: 18
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 18
Branch analysis from position: 18
Branch analysis from position: 33
Branch analysis from position: 34
1 jumps found. (Code = 42) Position 1 = 15
Branch analysis from position: 15
Branch analysis from position: 34
Branch analysis from position: 36
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 36
Branch analysis from position: 12
filename:       /in/q7NCt
function name:  (null)
number of ops:  43
compiled vars:  !0 = $arr, !1 = $keyStore, !2 = $record, !3 = $value, !4 = $key, !5 = $result, !6 = $key0, !7 = $item, !8 = $key1
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
    7     1        ASSIGN                                                       !1, <array>
    8     2      > FE_RESET_R                                           $11     !0, ->12
          3    > > FE_FETCH_R                                                   $11, !2, ->12
    9     4    > > FE_RESET_R                                           $12     !2, ->10
          5    > > FE_FETCH_R                                           ~13     $12, !3, ->10
          6    >   ASSIGN                                                       !4, ~13
   10     7        ASSIGN_DIM                                                   !1, !4
          8        OP_DATA                                                      !4
    9     9      > JMP                                                          ->5
         10    >   FE_FREE                                                      $12
    8    11      > JMP                                                          ->3
         12    >   FE_FREE                                                      $11
   14    13        ASSIGN                                                       !5, <array>
   15    14      > FE_RESET_R                                           $17     !0, ->36
         15    > > FE_FETCH_R                                           ~18     $17, !3, ->36
         16    >   ASSIGN                                                       !6, ~18
   16    17      > FE_RESET_R                                           $20     !3, ->34
         18    > > FE_FETCH_R                                           ~21     $20, !7, ->34
         19    >   ASSIGN                                                       !8, ~21
   17    20        FRAMELESS_ICALL_2                in_array            ~23     !8, !1
         21      > JMPZ                                                         ~23, ->33
   18    22    >   ISSET_ISEMPTY_DIM_OBJ                             0          !5, !8
         23      > JMPZ                                                         ~25, ->28
         24    >   ASSIGN_DIM_OP                    +=               1  ~26     !5, !8
         25        OP_DATA                                                      !7
         26        QM_ASSIGN                                            ~27     ~26
         27      > JMP                                                          ->31
         28    >   ASSIGN_DIM                                           ~28     !5, !8
         29        OP_DATA                                                      !7
         30        QM_ASSIGN                                            ~27     ~28
         31    >   ASSIGN_DIM                                                   !5, !8
         32        OP_DATA                                                      ~27
   16    33    > > JMP                                                          ->18
         34    >   FE_FREE                                                      $20
   15    35      > JMP                                                          ->15
         36    >   FE_FREE                                                      $17
   23    37        ECHO                                                         '%3Cpre%3E'
   24    38        INIT_FCALL                                                   'print_r'
         39        SEND_VAR                                                     !5
         40        DO_ICALL                                                     
   25    41        ECHO                                                         '%3C%2Fpre%3E'
         42      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
163.22 ms | 1995 KiB | 16 Q