3v4l.org

run code in 500+ PHP versions simultaneously
<?php $k_a = array( array( "article" => "c", "price" => 2 ), array( "article" => "f", "price" => 3 ) ); $k_b = array( array( "article" => "a", "price" => 2 ), array( "article" => "b", "price" => 4 ), array( "article" => "c", "price" => 1 ), array( "article" => "g", "price" => 3 ) ); $final_article_array = array_values(array_unique(array_merge(array_column($k_a,'article'),array_column($k_b,'article')))); sort($final_article_array); $k_a_new = []; $k_b_new = []; foreach($final_article_array as $key=>$final_article_arr){ $k = array_search($final_article_arr,array_column($k_a,'article')); if($k !==false){ $k_a_new[$final_article_arr]['article'] = $final_article_arr; $k_a_new[$final_article_arr]['price'] = $k_a[$k]['price']; }else{ $k_a_new[$final_article_arr]['article'] = $final_article_arr; $k_a_new[$final_article_arr]['price'] = 0; } $j = array_search($final_article_arr,array_column($k_b,'article')); if($j !==false){ $k_b_new[$final_article_arr]['article'] = $final_article_arr; $k_b_new[$final_article_arr]['price'] = $k_b[$j]['price']; }else{ $k_b_new[$final_article_arr]['article'] = $final_article_arr; $k_b_new[$final_article_arr]['price'] = 0; } } $k_a_new = array_values($k_a_new); $k_b_new = array_values($k_b_new); print_r($k_a_new); echo PHP_EOL; print_r($k_b_new);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 27, Position 2 = 82
Branch analysis from position: 27
2 jumps found. (Code = 78) Position 1 = 28, Position 2 = 82
Branch analysis from position: 28
2 jumps found. (Code = 43) Position 1 = 40, Position 2 = 49
Branch analysis from position: 40
1 jumps found. (Code = 42) Position 1 = 55
Branch analysis from position: 55
2 jumps found. (Code = 43) Position 1 = 66, Position 2 = 75
Branch analysis from position: 66
1 jumps found. (Code = 42) Position 1 = 81
Branch analysis from position: 81
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
Branch analysis from position: 75
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
Branch analysis from position: 49
2 jumps found. (Code = 43) Position 1 = 66, Position 2 = 75
Branch analysis from position: 66
Branch analysis from position: 75
Branch analysis from position: 82
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 82
filename:       /in/DTiJk
function name:  (null)
number of ops:  99
compiled vars:  !0 = $k_a, !1 = $k_b, !2 = $final_article_array, !3 = $k_a_new, !4 = $k_b_new, !5 = $final_article_arr, !6 = $key, !7 = $k, !8 = $j
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
   12     1        ASSIGN                                                       !1, <array>
   27     2        INIT_FCALL                                                   'array_values'
          3        INIT_FCALL                                                   'array_unique'
          4        INIT_FCALL                                                   'array_merge'
          5        INIT_FCALL                                                   'array_column'
          6        SEND_VAR                                                     !0
          7        SEND_VAL                                                     'article'
          8        DO_ICALL                                             $11     
          9        SEND_VAR                                                     $11
         10        INIT_FCALL                                                   'array_column'
         11        SEND_VAR                                                     !1
         12        SEND_VAL                                                     'article'
         13        DO_ICALL                                             $12     
         14        SEND_VAR                                                     $12
         15        DO_ICALL                                             $13     
         16        SEND_VAR                                                     $13
         17        DO_ICALL                                             $14     
         18        SEND_VAR                                                     $14
         19        DO_ICALL                                             $15     
         20        ASSIGN                                                       !2, $15
   28    21        INIT_FCALL                                                   'sort'
         22        SEND_REF                                                     !2
         23        DO_ICALL                                                     
   30    24        ASSIGN                                                       !3, <array>
   31    25        ASSIGN                                                       !4, <array>
   32    26      > FE_RESET_R                                           $20     !2, ->82
         27    > > FE_FETCH_R                                           ~21     $20, !5, ->82
         28    >   ASSIGN                                                       !6, ~21
   33    29        INIT_FCALL                                                   'array_search'
         30        SEND_VAR                                                     !5
         31        INIT_FCALL                                                   'array_column'
         32        SEND_VAR                                                     !0
         33        SEND_VAL                                                     'article'
         34        DO_ICALL                                             $23     
         35        SEND_VAR                                                     $23
         36        DO_ICALL                                             $24     
         37        ASSIGN                                                       !7, $24
   34    38        TYPE_CHECK                                      1018          !7
         39      > JMPZ                                                         ~26, ->49
   35    40    >   FETCH_DIM_W                                          $27     !3, !5
         41        ASSIGN_DIM                                                   $27, 'article'
         42        OP_DATA                                                      !5
   36    43        FETCH_DIM_R                                          ~31     !0, !7
         44        FETCH_DIM_R                                          ~32     ~31, 'price'
         45        FETCH_DIM_W                                          $29     !3, !5
         46        ASSIGN_DIM                                                   $29, 'price'
         47        OP_DATA                                                      ~32
   34    48      > JMP                                                          ->55
   38    49    >   FETCH_DIM_W                                          $33     !3, !5
         50        ASSIGN_DIM                                                   $33, 'article'
         51        OP_DATA                                                      !5
   39    52        FETCH_DIM_W                                          $35     !3, !5
         53        ASSIGN_DIM                                                   $35, 'price'
         54        OP_DATA                                                      0
   41    55    >   INIT_FCALL                                                   'array_search'
         56        SEND_VAR                                                     !5
         57        INIT_FCALL                                                   'array_column'
         58        SEND_VAR                                                     !1
         59        SEND_VAL                                                     'article'
         60        DO_ICALL                                             $37     
         61        SEND_VAR                                                     $37
         62        DO_ICALL                                             $38     
         63        ASSIGN                                                       !8, $38
   42    64        TYPE_CHECK                                      1018          !8
         65      > JMPZ                                                         ~40, ->75
   43    66    >   FETCH_DIM_W                                          $41     !4, !5
         67        ASSIGN_DIM                                                   $41, 'article'
         68        OP_DATA                                                      !5
   44    69        FETCH_DIM_R                                          ~45     !1, !8
         70        FETCH_DIM_R                                          ~46     ~45, 'price'
         71        FETCH_DIM_W                                          $43     !4, !5
         72        ASSIGN_DIM                                                   $43, 'price'
         73        OP_DATA                                                      ~46
   42    74      > JMP                                                          ->81
   46    75    >   FETCH_DIM_W                                          $47     !4, !5
         76        ASSIGN_DIM                                                   $47, 'article'
         77        OP_DATA                                                      !5
   47    78        FETCH_DIM_W                                          $49     !4, !5
         79        ASSIGN_DIM                                                   $49, 'price'
         80        OP_DATA                                                      0
   32    81    > > JMP                                                          ->27
         82    >   FE_FREE                                                      $20
   50    83        INIT_FCALL                                                   'array_values'
         84        SEND_VAR                                                     !3
         85        DO_ICALL                                             $51     
         86        ASSIGN                                                       !3, $51
   51    87        INIT_FCALL                                                   'array_values'
         88        SEND_VAR                                                     !4
         89        DO_ICALL                                             $53     
         90        ASSIGN                                                       !4, $53
   52    91        INIT_FCALL                                                   'print_r'
         92        SEND_VAR                                                     !3
         93        DO_ICALL                                                     
   53    94        ECHO                                                         '%0A'
   54    95        INIT_FCALL                                                   'print_r'
         96        SEND_VAR                                                     !4
         97        DO_ICALL                                                     
         98      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
182.81 ms | 2874 KiB | 20 Q