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']];
based on PIAn4
Output for 7.2.0 - 7.2.33, 7.3.0 - 7.3.22, 7.4.0 - 7.4.10, 8.0.0alpha1 - beta3
array(3) { ["taxRate"]=> int(18) ["stockCode"]=> string(4) "rz-5" ["prices"]=> array(3) { ["CONSUMERTEMEL"]=> int(33) ["KAZANANCONSUMER"]=> int(2) ["CONSUMERPREMIUM"]=> int(50) } }