Php将折扣平均应用于多种产品
我在想办法。我想将优惠券/折扣金额均匀地应用于多个产品 例如,如果我有一个包含3项的数组Php将折扣平均应用于多种产品,php,Php,我在想办法。我想将优惠券/折扣金额均匀地应用于多个产品 例如,如果我有一个包含3项的数组 Array ( [0] => stdClass Object ( [id] => 1 [price] => 10.00 ) [1] => stdClass Object ( [id] => 2 [price] =>
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,那么根据问题下的评论,您希望按比例(而不是平均)将息票价值分配给所有项目的价格。这很简单,与其说是编程问题,不如说是数学问题
x
计算为息票/总额(价格)
项目价格
优惠券=10
,价格=[10,20,30]
),结果是:
x=10/60=0.1666667
项目价格
中减去x*项目价格
:
10-10*0.16667=10-1.66667=8.33333
20-20*0.1666667=20-3.3333333=16.6666
30-30*0.1666667=30-5=25
要验证:
1.666667+3.3333333+5=10
,问题是?@u\u mulder问题是它不工作。它不工作如何?你的电脑爆炸了?你有白色屏幕吗?你有错误的结果吗?而且,我不知道你说的“均匀涂抹”是什么意思。在您的结果中,第一项减去2.5美元,第二项减去2.5美元,最后一项减去5美元。您不想从每个项目中减去优惠券价值/项目数吗?我会说,这是平均的。平均意味着你把每一项都除以10/3,减去3.33美元,不是吗?这是一个很好的答案!唯一的问题是,如果你的价格以0.99结尾怎么办?比如$10.99、$12.99等等。我已经在我的项目中实现了这个答案,但是它不是很漂亮,因为每行的折扣是3位小数,而不是2位小数。