3v4l.org

run code in 500+ PHP versions simultaneously
<?php $myarray = [ '0' => array ( 'u' => '30', 'v' => '16', 'w' => '22', 'x' => '30', 'y' => '16', 'z' => '22', ), '1' => array ( 'u' => '32', 'v' => '25', 'w' => '1', 'x' => '30', 'y' => '16', 'z' => '22', ), '2' => array ( 'u' => '30', 'v' => '16', 'w' => '22', 'x' => '54', 'y' => '96', 'z' => '2', ), '3' => array ( 'u' => '30', 'v' => '16', 'w' => '22', 'x' => '3', 'y' => '1', 'z' => '6', ) ]; $supp = []; foreach ($myarray as $ind => $arr){ $uvw = sprintf('%d|%d|%d', $arr['u'], $arr['v'], $arr['w']); if (!isset($supp[$uvw])){ $supp[$uvw] = ['ind' => $ind, 'data' => $arr]; } else { foreach($arr as $in => $new_val){ foreach($supp[$uvw]['data'] as $i => &$val){ if ($i === $in && !in_array($i,['u','v','w'])){ $val .= ',' . $new_val; } } } } } $output = []; foreach($supp as $arr_data){ $output[$arr_data['ind']] = $arr_data['data']; } print_r($output);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 46
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 46
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 20, Position 2 = 25
Branch analysis from position: 20
1 jumps found. (Code = 42) Position 1 = 45
Branch analysis from position: 45
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 25
2 jumps found. (Code = 77) Position 1 = 26, Position 2 = 44
Branch analysis from position: 26
2 jumps found. (Code = 78) Position 1 = 27, Position 2 = 44
Branch analysis from position: 27
2 jumps found. (Code = 125) Position 1 = 31, Position 2 = 42
Branch analysis from position: 31
2 jumps found. (Code = 126) Position 1 = 32, Position 2 = 42
Branch analysis from position: 32
2 jumps found. (Code = 46) Position 1 = 35, Position 2 = 38
Branch analysis from position: 35
2 jumps found. (Code = 43) Position 1 = 39, Position 2 = 41
Branch analysis from position: 39
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
Branch analysis from position: 41
Branch analysis from position: 38
Branch analysis from position: 42
1 jumps found. (Code = 42) Position 1 = 26
Branch analysis from position: 26
Branch analysis from position: 42
Branch analysis from position: 44
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 44
Branch analysis from position: 46
2 jumps found. (Code = 77) Position 1 = 49, Position 2 = 55
Branch analysis from position: 49
2 jumps found. (Code = 78) Position 1 = 50, Position 2 = 55
Branch analysis from position: 50
1 jumps found. (Code = 42) Position 1 = 49
Branch analysis from position: 49
Branch analysis from position: 55
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 55
Branch analysis from position: 46
filename:       /in/9aF7C
function name:  (null)
number of ops:  60
compiled vars:  !0 = $myarray, !1 = $supp, !2 = $arr, !3 = $ind, !4 = $uvw, !5 = $new_val, !6 = $in, !7 = $val, !8 = $i, !9 = $output, !10 = $arr_data
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
   40     1        ASSIGN                                                       !1, <array>
   41     2      > FE_RESET_R                                           $13     !0, ->46
          3    > > FE_FETCH_R                                           ~14     $13, !2, ->46
          4    >   ASSIGN                                                       !3, ~14
   42     5        FETCH_DIM_R                                          ~16     !2, 'u'
          6        FETCH_DIM_R                                          ~17     !2, 'v'
          7        FETCH_DIM_R                                          ~18     !2, 'w'
          8        CAST                                              4  ~19     ~16
          9        ROPE_INIT                                         5  ~23     ~19
         10        ROPE_ADD                                          1  ~23     ~23, '%7C'
         11        CAST                                              4  ~20     ~17
         12        ROPE_ADD                                          2  ~23     ~23, ~20
         13        ROPE_ADD                                          3  ~23     ~23, '%7C'
         14        CAST                                              4  ~21     ~18
         15        ROPE_END                                          4  ~22     ~23, ~21
         16        ASSIGN                                                       !4, ~22
   43    17        ISSET_ISEMPTY_DIM_OBJ                             0  ~27     !1, !4
         18        BOOL_NOT                                             ~28     ~27
         19      > JMPZ                                                         ~28, ->25
   44    20    >   INIT_ARRAY                                           ~30     !3, 'ind'
         21        ADD_ARRAY_ELEMENT                                    ~30     !2, 'data'
         22        ASSIGN_DIM                                                   !1, !4
         23        OP_DATA                                                      ~30
   43    24      > JMP                                                          ->45
   47    25    > > FE_RESET_R                                           $31     !2, ->44
         26    > > FE_FETCH_R                                           ~32     $31, !5, ->44
         27    >   ASSIGN                                                       !6, ~32
   48    28        FETCH_DIM_W                                          $34     !1, !4
         29        FETCH_DIM_W                                          $35     $34, 'data'
         30      > FE_RESET_RW                                          $36     $35, ->42
         31    > > FE_FETCH_RW                                          ~37     $36, !7, ->42
         32    >   ASSIGN                                                       !8, ~37
   49    33        IS_IDENTICAL                                         ~39     !8, !6
         34      > JMPZ_EX                                              ~39     ~39, ->38
         35    >   IN_ARRAY                                             ~40     !8, <array>
         36        BOOL_NOT                                             ~41     ~40
         37        BOOL                                                 ~39     ~41
         38    > > JMPZ                                                         ~39, ->41
   50    39    >   CONCAT                                               ~42     '%2C', !5
         40        ASSIGN_OP                                         8          !7, ~42
   48    41    > > JMP                                                          ->31
         42    >   FE_FREE                                                      $36
   47    43      > JMP                                                          ->26
         44    >   FE_FREE                                                      $31
   41    45    > > JMP                                                          ->3
         46    >   FE_FREE                                                      $13
   57    47        ASSIGN                                                       !9, <array>
   58    48      > FE_RESET_R                                           $45     !1, ->55
         49    > > FE_FETCH_R                                                   $45, !10, ->55
   59    50    >   FETCH_DIM_R                                          ~46     !10, 'ind'
         51        FETCH_DIM_R                                          ~48     !10, 'data'
         52        ASSIGN_DIM                                                   !9, ~46
         53        OP_DATA                                                      ~48
   58    54      > JMP                                                          ->49
         55    >   FE_FREE                                                      $45
   62    56        INIT_FCALL                                                   'print_r'
         57        SEND_VAR                                                     !9
         58        DO_ICALL                                                     
         59      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
171.8 ms | 1827 KiB | 14 Q