<?php
function discount($cart){
$sum = array_sum($cart);
if($sum >= 100) return 15;
else if(count($cart) >= 3 and (isset($cart['A']) or isset($cart['B']))) return 10;
else if(count($cart) >= 3) return 5;
else return 0;
}
$carts = [ // product => price
['A' => 15, 'B' => 25], // no discount
['D' => 15, 'E' => 25, 'F' => 50], // any 3
['A' => 15, 'B' => 25, 'D' => 35], // any 2 + 1 special
['A' => 15, 'B' => 25, 'C' => 50, 'D' => 75], // over amount x
];
foreach($carts as $cart){
echo (string)discount($cart), "\n";
}
preferences:
80.87 ms | 402 KiB | 5 Q