3v4l.org

run code in 300+ 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 = 44
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 44
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 23
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 23
2 jumps found. (Code = 77) Position 1 = 24, Position 2 = 42
Branch analysis from position: 24
2 jumps found. (Code = 78) Position 1 = 25, Position 2 = 42
Branch analysis from position: 25
2 jumps found. (Code = 125) Position 1 = 29, Position 2 = 40
Branch analysis from position: 29
2 jumps found. (Code = 126) Position 1 = 30, Position 2 = 40
Branch analysis from position: 30
2 jumps found. (Code = 46) Position 1 = 33, Position 2 = 36
Branch analysis from position: 33
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 39
Branch analysis from position: 37
1 jumps found. (Code = 42) Position 1 = 29
Branch analysis from position: 29
Branch analysis from position: 39
Branch analysis from position: 36
Branch analysis from position: 40
1 jumps found. (Code = 42) Position 1 = 24
Branch analysis from position: 24
Branch analysis from position: 40
Branch analysis from position: 42
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 42
Branch analysis from position: 44
2 jumps found. (Code = 77) Position 1 = 47, Position 2 = 53
Branch analysis from position: 47
2 jumps found. (Code = 78) Position 1 = 48, Position 2 = 53
Branch analysis from position: 48
1 jumps found. (Code = 42) Position 1 = 47
Branch analysis from position: 47
Branch analysis from position: 53
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 53
Branch analysis from position: 44
filename:       /in/9aF7C
function name:  (null)
number of ops:  58
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, ->44
          3    > > FE_FETCH_R                                       ~14     $13, !2, ->44
          4    >   ASSIGN                                                   !3, ~14
   42     5        INIT_FCALL                                               'sprintf'
          6        SEND_VAL                                                 '%25d%7C%25d%7C%25d'
          7        FETCH_DIM_R                                      ~16     !2, 'u'
          8        SEND_VAL                                                 ~16
          9        FETCH_DIM_R                                      ~17     !2, 'v'
         10        SEND_VAL                                                 ~17
         11        FETCH_DIM_R                                      ~18     !2, 'w'
         12        SEND_VAL                                                 ~18
         13        DO_ICALL                                         $19     
         14        ASSIGN                                                   !4, $19
   43    15        ISSET_ISEMPTY_DIM_OBJ                         0  ~21     !1, !4
         16        BOOL_NOT                                         ~22     ~21
         17      > JMPZ                                                     ~22, ->23
   44    18    >   INIT_ARRAY                                       ~24     !3, 'ind'
         19        ADD_ARRAY_ELEMENT                                ~24     !2, 'data'
         20        ASSIGN_DIM                                               !1, !4
         21        OP_DATA                                                  ~24
   43    22      > JMP                                                      ->43
   47    23    > > FE_RESET_R                                       $25     !2, ->42
         24    > > FE_FETCH_R                                       ~26     $25, !5, ->42
         25    >   ASSIGN                                                   !6, ~26
   48    26        FETCH_DIM_W                                      $28     !1, !4
         27        FETCH_DIM_W                                      $29     $28, 'data'
         28      > FE_RESET_RW                                      $30     $29, ->40
         29    > > FE_FETCH_RW                                      ~31     $30, !7, ->40
         30    >   ASSIGN                                                   !8, ~31
   49    31        IS_IDENTICAL                                     ~33     !8, !6
         32      > JMPZ_EX                                          ~33     ~33, ->36
         33    >   IN_ARRAY                                         ~34     !8, <array>
         34        BOOL_NOT                                         ~35     ~34
         35        BOOL                                             ~33     ~35
         36    > > JMPZ                                                     ~33, ->39
   50    37    >   CONCAT                                           ~36     '%2C', !5
         38        ASSIGN_OP                                     8          !7, ~36
   48    39    > > JMP                                                      ->29
         40    >   FE_FREE                                                  $30
   47    41      > JMP                                                      ->24
         42    >   FE_FREE                                                  $25
   41    43    > > JMP                                                      ->3
         44    >   FE_FREE                                                  $13
   57    45        ASSIGN                                                   !9, <array>
   58    46      > FE_RESET_R                                       $39     !1, ->53
         47    > > FE_FETCH_R                                               $39, !10, ->53
   59    48    >   FETCH_DIM_R                                      ~40     !10, 'ind'
         49        FETCH_DIM_R                                      ~42     !10, 'data'
         50        ASSIGN_DIM                                               !9, ~40
         51        OP_DATA                                                  ~42
   58    52      > JMP                                                      ->47
         53    >   FE_FREE                                                  $39
   62    54        INIT_FCALL                                               'print_r'
         55        SEND_VAR                                                 !9
         56        DO_ICALL                                                 
         57      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
149.52 ms | 1008 KiB | 15 Q