我试图找出一些东西。我希望将优惠券/折扣金额均匀地应用于多个产品。
例如,如果我有一个包含3个项目的数组
Array
(
[0] => stdClass Object
(
[id] => 1
[price] => 10.00
)
[1] => stdClass Object
(
[id] => 2
[price] => 20.00
)
[2] => stdClass Object
(
[id] => 3
[price] => 30.00
)
)
我的优惠券价格是10美元折扣
我试过这个:
foreach ($array as $row) {
$data['price'] = ($row->price - 10 / 3) * 100
}
所以基本上我想从每个项目的价格中按比例扣除总计10个,最后得到的结果如下:
Array
(
[0] => stdClass Object
(
[id] => 1
[price] => 7.50
)
[1] => stdClass Object
(
[id] => 2
[price] => 17.50
)
[2] => stdClass Object
(
[id] => 3
[price] => 25.00
)
)
其中总价格总和为50,而不是原始的60
答案 0 :(得分:0)
因此,根据问题的评论,您希望将优惠券价值按比例(不均匀)分配给所有商品的价格。这很简单,它比编程问题更像数学问题。
x
计算为coupon / sum(prices)
x * item_price
item_price
对于您的示例(coupon = 10
,prices = [10, 20, 30]
),结果为:
x = 10 / 60 = 0.1666667
x * item_price
中减去item_price
:
10 - 10 * 0.1666667 = 10 - 1.6666667 = 8.33333
20 - 20 * 0.1666667 = 20 - 3.3333333 = 16.6666
30 - 30 * 0.1666667 = 30 - 5 = 25
验证:1.666667 + 3.3333333 + 5 = 10