3v4l.org

run code in 500+ PHP versions simultaneously
<?php $arr = [ [ "count_employee" => 2, "name" => "Harry" ], [ "count_employee" => 61, "name" => "Jack" ], [ "count_employee" => 11, "name" => "John" ], [ "count_warehouse" => 1, "name" => "Harry" ], [ "count_warehouse" => 77, "name" => "John" ], [ "count_warehouse" => 45, "name" => "Jack" ] ]; $result = []; foreach ($arr as $v) { // Initialize the person if (!isset($result[$v['name']])) { $result[$v['name']] = ["name" => $v['name'], "count_employee" => 0, "count_warehouse" => 0]; } // Add values if (isset($v['count_employee'])) $result[$v['name']]['count_employee'] += $v['count_employee']; if (isset($v['count_warehouse'])) $result[$v['name']]['count_warehouse'] += $v['count_warehouse']; } print_r($result);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 30
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 30
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 15
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 22
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 29
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 29
Branch analysis from position: 22
Branch analysis from position: 15
Branch analysis from position: 30
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 30
filename:       /in/TeNKF
function name:  (null)
number of ops:  35
compiled vars:  !0 = $arr, !1 = $result, !2 = $v
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                       !0, <array>
   29     1        ASSIGN                                                       !1, <array>
   30     2      > FE_RESET_R                                           $5      !0, ->30
          3    > > FE_FETCH_R                                                   $5, !2, ->30
   32     4    >   FETCH_DIM_R                                          ~6      !2, 'name'
          5        ISSET_ISEMPTY_DIM_OBJ                             0  ~7      !1, ~6
          6        BOOL_NOT                                             ~8      ~7
          7      > JMPZ                                                         ~8, ->15
   33     8    >   FETCH_DIM_R                                          ~9      !2, 'name'
          9        FETCH_DIM_R                                          ~11     !2, 'name'
         10        INIT_ARRAY                                           ~12     ~11, 'name'
         11        ADD_ARRAY_ELEMENT                                    ~12     0, 'count_employee'
         12        ADD_ARRAY_ELEMENT                                    ~12     0, 'count_warehouse'
         13        ASSIGN_DIM                                                   !1, ~9
         14        OP_DATA                                                      ~12
   36    15    >   ISSET_ISEMPTY_DIM_OBJ                             0          !2, 'count_employee'
         16      > JMPZ                                                         ~13, ->22
   37    17    >   FETCH_DIM_R                                          ~14     !2, 'name'
         18        FETCH_DIM_R                                          ~17     !2, 'count_employee'
         19        FETCH_DIM_RW                                         $15     !1, ~14
         20        ASSIGN_DIM_OP                    +=               1          $15, 'count_employee'
         21        OP_DATA                                                      ~17
   38    22    >   ISSET_ISEMPTY_DIM_OBJ                             0          !2, 'count_warehouse'
         23      > JMPZ                                                         ~18, ->29
   39    24    >   FETCH_DIM_R                                          ~19     !2, 'name'
         25        FETCH_DIM_R                                          ~22     !2, 'count_warehouse'
         26        FETCH_DIM_RW                                         $20     !1, ~19
         27        ASSIGN_DIM_OP                    +=               1          $20, 'count_warehouse'
         28        OP_DATA                                                      ~22
   30    29    > > JMP                                                          ->3
         30    >   FE_FREE                                                      $5
   41    31        INIT_FCALL                                                   'print_r'
         32        SEND_VAR                                                     !1
         33        DO_ICALL                                                     
         34      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
148.7 ms | 2137 KiB | 14 Q