3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = [ [ 'STOK_KODU' => 'ABC-1', 'FIYAT' => 10, 'FIYAT_GRUBU' => 'CONSUMERTEMEL', ], [ 'STOK_KODU' => 'ABC-1', 'FIYAT' => 15, 'FIYAT_GRUBU' => 'KAZANANCONSUMER', ], [ 'STOK_KODU' => 'ABC-1', 'FIYAT' => 20, 'FIYAT_GRUBU' => 'CONSUMERPREMIUM', ], [ 'STOK_KODU' => 'XYZ-2', 'FIYAT' => 33, 'FIYAT_GRUBU' => 'CONSUMERTEMEL', ], [ 'STOK_KODU' => 'XYZ-2', 'FIYAT' => 2, 'FIYAT_GRUBU' => 'KAZANANCONSUMER', ], [ 'STOK_KODU' => 'XYZ-2', 'FIYAT' => 50, 'FIYAT_GRUBU' => 'CONSUMERPREMIUM', ], [ 'STOK_KODU' => 'rz-5', 'FIYAT' => 51, 'FIYAT_GRUBU' => 'KAZANANCONSUMER', ], [ 'STOK_KODU' => 'rz-5', 'FIYAT' => 252, 'FIYAT_GRUBU' => 'CONSUMERPREMIUM', ], ]; $priceList= array(); for($i=0; $i<count($data); $i++){ $stockCode = $data[$i]['STOK_KODU']; // Check wheather stock code exist in array if (!array_key_exists($stockCode, $priceList)){ //Clear price and prices arrays $price = array(); $prices = array(); $priceGroup = $data[$i]['FIYAT_GRUBU']; $price[$priceGroup] = $data[$i]['FIYAT']; array_push($prices, $price); $priceList[$stockCode] = $prices; } else { $priceGroup=$data[$i]['FIYAT_GRUBU']; $price[$priceGroup] = $data[$i]['FIYAT']; array_push($prices, $price); $priceList[$stockCode] = $price; } } //var_dump($priceList); $product = [ 'taxRate' => 18, 'stockCode' => $stockCode ]; //$stockCode='XYZ-2'; //In while loop get corresponding prices for product_code if (array_key_exists($stockCode, $priceList)){ $product['prices'] = $priceList[$stockCode]; } var_dump($product); exit(); $priceGroupList = [ 'ABC-1' => [ 'CONSUMERTEMEL' => 10, 'KAZANANCONSUMER' => 15, 'CONSUMERPREMIUM' => 20, ], 'XYZ-2' => [ 'CONSUMERTEMEL' => 10, 'KAZANANCONSUMER' => 15, 'CONSUMERPREMIUM' => 20, ], ]; $product = []; $product['prices'] = $priceGroupList[$product['stokCode']];
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 40
Branch analysis from position: 40
2 jumps found. (Code = 44) Position 1 = 43, Position 2 = 4
Branch analysis from position: 43
2 jumps found. (Code = 43) Position 1 = 48, Position 2 = 51
Branch analysis from position: 48
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 51
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 26
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 39
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 43, Position 2 = 4
Branch analysis from position: 43
Branch analysis from position: 4
Branch analysis from position: 26
2 jumps found. (Code = 44) Position 1 = 43, Position 2 = 4
Branch analysis from position: 43
Branch analysis from position: 4
filename:       /in/EpniGv
function name:  (null)
number of ops:  62
compiled vars:  !0 = $data, !1 = $priceList, !2 = $i, !3 = $stockCode, !4 = $price, !5 = $prices, !6 = $priceGroup, !7 = $product, !8 = $priceGroupList
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   ASSIGN                                                   !0, <array>
   48     1        ASSIGN                                                   !1, <array>
   50     2        ASSIGN                                                   !2, 0
          3      > JMP                                                      ->40
   52     4    >   FETCH_DIM_R                                      ~12     !0, !2
          5        FETCH_DIM_R                                      ~13     ~12, 'STOK_KODU'
          6        ASSIGN                                                   !3, ~13
   54     7        ARRAY_KEY_EXISTS                                 ~15     !3, !1
          8        BOOL_NOT                                         ~16     ~15
          9      > JMPZ                                                     ~16, ->26
   56    10    >   ASSIGN                                                   !4, <array>
   57    11        ASSIGN                                                   !5, <array>
   58    12        FETCH_DIM_R                                      ~19     !0, !2
         13        FETCH_DIM_R                                      ~20     ~19, 'FIYAT_GRUBU'
         14        ASSIGN                                                   !6, ~20
   59    15        FETCH_DIM_R                                      ~23     !0, !2
         16        FETCH_DIM_R                                      ~24     ~23, 'FIYAT'
         17        ASSIGN_DIM                                               !4, !6
         18        OP_DATA                                                  ~24
   60    19        INIT_FCALL                                               'array_push'
         20        SEND_REF                                                 !5
         21        SEND_VAR                                                 !4
         22        DO_ICALL                                                 
   61    23        ASSIGN_DIM                                               !1, !3
         24        OP_DATA                                                  !5
         25      > JMP                                                      ->39
   64    26    >   FETCH_DIM_R                                      ~27     !0, !2
         27        FETCH_DIM_R                                      ~28     ~27, 'FIYAT_GRUBU'
         28        ASSIGN                                                   !6, ~28
   65    29        FETCH_DIM_R                                      ~31     !0, !2
         30        FETCH_DIM_R                                      ~32     ~31, 'FIYAT'
         31        ASSIGN_DIM                                               !4, !6
         32        OP_DATA                                                  ~32
   66    33        INIT_FCALL                                               'array_push'
         34        SEND_REF                                                 !5
         35        SEND_VAR                                                 !4
         36        DO_ICALL                                                 
   67    37        ASSIGN_DIM                                               !1, !3
         38        OP_DATA                                                  !4
   50    39    >   PRE_INC                                                  !2
         40    >   COUNT                                            ~36     !0
         41        IS_SMALLER                                               !2, ~36
         42      > JMPNZ                                                    ~37, ->4
   74    43    >   INIT_ARRAY                                       ~38     18, 'taxRate'
   75    44        ADD_ARRAY_ELEMENT                                ~38     !3, 'stockCode'
   73    45        ASSIGN                                                   !7, ~38
   79    46        ARRAY_KEY_EXISTS                                         !3, !1
         47      > JMPZ                                                     ~40, ->51
   80    48    >   FETCH_DIM_R                                      ~42     !1, !3
         49        ASSIGN_DIM                                               !7, 'prices'
         50        OP_DATA                                                  ~42
   83    51    >   INIT_FCALL                                               'var_dump'
         52        SEND_VAR                                                 !7
         53        DO_ICALL                                                 
   85    54      > EXIT                                                     
   87    55*       ASSIGN                                                   !8, <array>
  101    56*       ASSIGN                                                   !7, <array>
  103    57*       FETCH_DIM_R                                      ~47     !7, 'stokCode'
         58*       FETCH_DIM_R                                      ~48     !8, ~47
         59*       ASSIGN_DIM                                               !7, 'prices'
         60*       OP_DATA                                                  ~48
         61*     > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
149.31 ms | 1400 KiB | 17 Q