3v4l.org

run code in 500+ PHP versions simultaneously
<?php $array = [ [ 'KeyAccountID' => 1234, 'KeyAccountName' => 'John, Lennon', 'ClientID' => 9999, 'Client' => 'BBC', 'projects' => [ [2,915,'Zyxeldy','','',15000,'','',''], [2,956,'Awesome project, Step 1 ','','',1833.3333,1833.3333,1833.3333,''], [2,957,'Awesome project, Step 2','','',7000,'','',''] ] ],[ 'KeyAccountID' => 1236, 'KeyAccountName' => 'Ringo Starr', 'ClientID' => 9997, 'Client' => 'XYY', 'projects' => [ [2,867,'Data Mining','','',10000,'','',''] ] ],[ 'KeyAccountID' => 1235, 'KeyAccountName' => 'Poul McCartney', 'ClientID' => 9996, 'Client' => 'XYZ', 'projects' => [ [2,715,'XYZ, CSM','','',22083.3333,22083.3333,22083.3333,''] ] ] ]; $newArray = []; foreach($array as $value) { $newArray[$value['KeyAccountID']]['month1'] = array_sum(array_column($value['projects'],5)); $newArray[$value['KeyAccountID']]['month2'] = array_sum(array_column($value['projects'],6)); $newArray[$value['KeyAccountID']]['month3'] = array_sum(array_column($value['projects'],7)); } echo "<pre>"; var_dump($newArray); ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 41
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 41
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 41
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 41
filename:       /in/UEFaB
function name:  (null)
number of ops:  47
compiled vars:  !0 = $array, !1 = $newArray, !2 = $value
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                       !0, <array>
   31     1        ASSIGN                                                       !1, <array>
   33     2      > FE_RESET_R                                           $5      !0, ->41
          3    > > FE_FETCH_R                                                   $5, !2, ->41
   34     4    >   FETCH_DIM_R                                          ~6      !2, 'KeyAccountID'
          5        INIT_FCALL                                                   'array_sum'
          6        INIT_FCALL                                                   'array_column'
          7        FETCH_DIM_R                                          ~9      !2, 'projects'
          8        SEND_VAL                                                     ~9
          9        SEND_VAL                                                     5
         10        DO_ICALL                                             $10     
         11        SEND_VAR                                                     $10
         12        DO_ICALL                                             $11     
         13        FETCH_DIM_W                                          $7      !1, ~6
         14        ASSIGN_DIM                                                   $7, 'month1'
         15        OP_DATA                                                      $11
   35    16        FETCH_DIM_R                                          ~12     !2, 'KeyAccountID'
         17        INIT_FCALL                                                   'array_sum'
         18        INIT_FCALL                                                   'array_column'
         19        FETCH_DIM_R                                          ~15     !2, 'projects'
         20        SEND_VAL                                                     ~15
         21        SEND_VAL                                                     6
         22        DO_ICALL                                             $16     
         23        SEND_VAR                                                     $16
         24        DO_ICALL                                             $17     
         25        FETCH_DIM_W                                          $13     !1, ~12
         26        ASSIGN_DIM                                                   $13, 'month2'
         27        OP_DATA                                                      $17
   36    28        FETCH_DIM_R                                          ~18     !2, 'KeyAccountID'
         29        INIT_FCALL                                                   'array_sum'
         30        INIT_FCALL                                                   'array_column'
         31        FETCH_DIM_R                                          ~21     !2, 'projects'
         32        SEND_VAL                                                     ~21
         33        SEND_VAL                                                     7
         34        DO_ICALL                                             $22     
         35        SEND_VAR                                                     $22
         36        DO_ICALL                                             $23     
         37        FETCH_DIM_W                                          $19     !1, ~18
         38        ASSIGN_DIM                                                   $19, 'month3'
         39        OP_DATA                                                      $23
   33    40      > JMP                                                          ->3
         41    >   FE_FREE                                                      $5
   38    42        ECHO                                                         '%3Cpre%3E'
   39    43        INIT_FCALL                                                   'var_dump'
         44        SEND_VAR                                                     !1
         45        DO_ICALL                                                     
   40    46      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
165.08 ms | 2256 KiB | 16 Q