Каким образом можно создать массив, где каждый элемент имеет формат [code => amount], где code представляет собой промокод и amount - сумма скидки в рублях, применяемая ко всему заказу?
В зависимости от используемого языка программирования, можно создать массив "купон" с помощью следующих методов: 1. В Python: ```python coupons = [ {"code": "coupon1", "amount": 100}, {"code": "coupon2", "amount": 200}, {"code": "coupon3", "amount": 50} ] ``` 2. В JavaScript: ```javascript var coupons = [ {"code": "coupon1", "amount": 100}, {"code": "coupon2", "amount": 200}, {"code": "coupon3", "amount": 50} ]; ``` 3. В PHP: ```php $coupons = [ ["code" => "coupon1", "amount" => 100], ["code" => "coupon2", "amount" => 200], ["code" => "coupon3", "amount" => 50] ]; ``` 4. В Java: ```java import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> coupon1 = new HashMap<>(); coupon1.put("code", 1); coupon1.put("amount", 100); Map<String, Integer> coupon2 = new HashMap<>(); coupon2.put("code", 2); coupon2.put("amount", 200); Map<String, Integer> coupon3 = new HashMap<>(); coupon3.put("code", 3); coupon3.put("amount", 50); List<Map<String, Integer>> coupons = new ArrayList<>(); coupons.add(coupon1); coupons.add(coupon2); coupons.add(coupon3); } } ``` Они создают массив "купон" с указанным форматом для каждого элемента. Сейчас в массиве представлены три примера, но вы можете добавить столько элементов, сколько вам необходимо для ваших подарочных кодов и скидок.
Один из возможных вариантов переформулирования данного кода: protected function getCouponsResult($order, $basket) { $productQuantity = []; foreach ($basket as $basketItem) { $id = $basketItem->getId(); $quantity = $basketItem->getQuantity(); $productQuantity[$id] = $quantity; } $orderDiscounts = $order->getDiscount(); $orderDiscounts = $orderDiscounts->getApplyResult(true); $couponsList = $orderDiscounts['COUPON_LIST']; $couponsBasket = $orderDiscounts['RESULT']['BASKET']; $couponsPrices = $orderDiscounts['PRICES']['BASKET']; $coupons = []; foreach ($couponsList as $code => $data) { $coupons[$data['ORDER_DISCOUNT_ID']] = $code; } $prices = []; foreach ($couponsPrices as $productID => $data) { $quantity = isset($productQuantity[$productID]) ? $productQuantity[$productID] : 1; $prices[$productID] = $data['DISCOUNT'] * $quantity; } $result = []; foreach ($couponsBasket as $productID => $discounts) { foreach ($discounts as $discount) { $discountID = $discount['DISCOUNT_ID']; $code = isset($coupons[$discountID]) ? $coupons[$discountID] : null; if (!$code) { continue; } $result[$code] = isset($result[$code]) ? $result[$code] : 0; $price = isset($prices[$productID]) ? $prices[$productID] : 0; $result[$code] += $price; } } $formattedResult = []; foreach ($result as $code => $amount) { $formattedResult[] = [ 'promoCodeId' => $code, 'discountAmount' => $amount * 100 ]; } return $formattedResult; }