3v4l.org

run code in 500+ PHP versions simultaneously
<?php $companyX = [ 0 => [ 2 => 'company X', 107 => 'Accounts receivable', 2000 => 'Provider A', 'amount' => 2 ], 1 => [ 2 => 'company X', 107 => 'Accounts receivable', 4123 => 'Provider F', 'amount' => 5 ], 2 => [ 2 => 'company X', 205 => 'Accounts payable', 2000 => 'Provider A', 'amount' => 2 ], 3 => [ 2 => 'company X', 205 => 'Accounts payable', 4123 => 'Provider F', 'amount' => 7 ], 4 => [ 2 => 'company X', 603 => 'Sales', 2011 => 'Provider G', 'amount' => 9 ] ]; $companyY = [ 0 => [ 5 => 'company Y', 107 => 'Accounts receivable', 2000 => 'Provider A', 'amount' => 15 ], 1 => [ 5 => 'company Y', 107 => 'Accounts receivable', 4123 => 'Provider F', 'amount' => 21 ], 2 => [ 5 => 'company Y', 205 => 'Accounts payable', 2000 => 'Provider A', 'amount' => 36 ], 3 => [ 5 => 'company Y', 205 => 'Accounts payable', 4123 => 'Provider F', 'amount' => 47 ], 4 => [ 5 => 'company Y', 701 => 'Costs', 6360 => 'Provider K', 'amount' => 14 ] ]; $companyZ = [ 0 => [ 8 => 'company Z', 107 => 'Accounts receivable', 2000 => 'Provider A', 'amount' => 51 ], 1 => [ 8 => 'company Z', 107 => 'Accounts receivable', 4123 => 'Provider F', 'amount' => 63 ], 2 => [ 8 => 'company Z', 205 => 'Accounts payable', 2000 => 'Provider A', 'amount' => 74 ], 3 => [ 8 => 'company Z', 205 => 'Accounts payable', 4123 => 'Provider F', 'amount' => 83 ] ]; $data = [...$companyX, ...$companyY, ...$companyZ]; $grouped = []; foreach($data as $item) { $item = array_values($item); $grouped[$item[1]][$item[2]][$item[0]][] = $item[3]; } print_r($grouped);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 10, Position 2 = 25
Branch analysis from position: 10
2 jumps found. (Code = 78) Position 1 = 11, Position 2 = 25
Branch analysis from position: 11
1 jumps found. (Code = 42) Position 1 = 10
Branch analysis from position: 10
Branch analysis from position: 25
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 25
filename:       /in/AkpFr
function name:  (null)
number of ops:  30
compiled vars:  !0 = $companyX, !1 = $companyY, !2 = $companyZ, !3 = $data, !4 = $grouped, !5 = $item
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
   11     1        ASSIGN                                                       !1, <array>
   19     2        ASSIGN                                                       !2, <array>
   26     3        INIT_ARRAY                                           ~9      
          4        ADD_ARRAY_UNPACK                                     ~9      !0
          5        ADD_ARRAY_UNPACK                                     ~9      !1
          6        ADD_ARRAY_UNPACK                                     ~9      !2
          7        ASSIGN                                                       !3, ~9
   27     8        ASSIGN                                                       !4, <array>
   28     9      > FE_RESET_R                                           $12     !3, ->25
         10    > > FE_FETCH_R                                                   $12, !5, ->25
   29    11    >   INIT_FCALL                                                   'array_values'
         12        SEND_VAR                                                     !5
         13        DO_ICALL                                             $13     
         14        ASSIGN                                                       !5, $13
   30    15        FETCH_DIM_R                                          ~15     !5, 1
         16        FETCH_DIM_R                                          ~17     !5, 2
         17        FETCH_DIM_R                                          ~19     !5, 0
         18        FETCH_DIM_R                                          ~22     !5, 3
         19        FETCH_DIM_W                                          $16     !4, ~15
         20        FETCH_DIM_W                                          $18     $16, ~17
         21        FETCH_DIM_W                                          $20     $18, ~19
         22        ASSIGN_DIM                                                   $20
         23        OP_DATA                                                      ~22
   28    24      > JMP                                                          ->10
         25    >   FE_FREE                                                      $12
   32    26        INIT_FCALL                                                   'print_r'
         27        SEND_VAR                                                     !4
         28        DO_ICALL                                                     
         29      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
139.99 ms | 1893 KiB | 14 Q