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%折扣

我遇到的问题是我知道如何计算数组成员的数量,而且我也知道 qty,但我知道如何按 qty 或数组成员计数?是否有一些解决方案可以在 $products 数组上应用此折扣并显示总价

4

2 回答 2

1

如果您想知道产品的总数,您需要遍历数组并添加数量以获得总数

$totalProducts = 0;
foreach($products as $product){
   $totalProducts += $product['qty'];
}
于 2013-08-28T16:09:10.933 回答
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 语句可能会更有效。但是有了三个,我会坚持一个 else if。

于 2013-08-28T16:18:27.750 回答