2013-08-28 3 views
0

У меня есть многомерный массив:Скидки на продукцию?

$products = array(
    array(
    'id'  => 'sku_123ABC', 
    'qty'  => 1, 
    'price' => 39.95, 
    'name' => 'T-Shirt', 
), 
    array(
    'id'  => 'sku_567ZYX', 
    'qty'  => 1, 
    'price' => 9.95, 
    'name' => 'Coffee Mug' 
), 
    array(
    'id'  => 'sku_965QRS', 
    'qty'  => 1, 
    'price' => 29.95, 
    'name' => 'Shot Glass' 
) 
); 

Я знаю, как подсчитать общую стоимость продукции, но то, что мне нужно, это скидка, чтобы выглядеть следующим образом

Любой 2 продукты 10% скидки

Любые 3 продукты 20% скидка

5 + продукты скидка 30%

у меня есть проблема в том, что я KNO w как подсчитывать числа членов массива, и у меня есть qty, я тоже это знаю, но я знаю, как это сделать, подсчитывая числа или элементы массива? ли theere какое-то решение, чтобы применить эти скидки на $ продуктов массива и отображать общую стоимость

ответ

1

Если вы хотите узнать общее количество продуктов, вы хотите перебрать массив и добавить количества, чтобы получить общий

$totalProducts = 0; 
foreach($products as $product){ 
    $totalProducts += $product['qty']; 
} 
0

Чтобы построить ответ от aynber, вы сможете получить окончательную общую стоимость в зависимости от количества добавленных предметов.

$totalProducts = 0; 
foreach($products as $product){ 
    $totalProducts += $product['qty']; 
    $totalCost += $product['price']; 
} 

echo $totalProducts . "<br>"; 
echo $totalCost . "<br>"; 


if ($totalProducts == 2) { 
    $totalCost = $totalCost - ($totalCost*.1); 

} else if ($totalProducts == 3) { 
    $totalCost = $totalCost - ($totalCost*.2); 

} else if ($totalProducts >= 5) { 
    $totalCost = $totalCost - ($totalCost*.3); 
} 

echo $totalCost; 

Имейте в виду, что если у вас будет куча правил, было бы немного более эффективно создавать оператор switch. Но с тремя я буду придерживаться другого, если.

Смежные вопросы