我有一家商店,滑雪俱乐部的成员可以租用设备。第一步是成员可以重复选择的循环,例如他和他的家人。每一行材料都有自己的总数,底部是总数。一旦完成最后一次租赁并且该成员想要完成其付款,就会出现问题。最后租用设备的线路加倍,因此总计是假的。一个想法如何解决这个问题。我认为这与我的UNSET指令有关。谢谢你的帮助。这是我的foreach循环的代码:
foreach ($price as $key => $value) {
$number[$key] = str_pad($number[$key], 2);
$type[$key] = str_pad($type[$key], 21);
$lenght[$key] = str_pad($lenght[$key], 15);
$boots[$key] = str_pad($boots[$key], 22);
$size[$key] = str_pad($size[$key], 15);
$priceskipers[$key] = ($priceski[$key]) * ($person[$key]);
$pricebootspers[$key] = ($priceboots[$key]) * ($person[$key]);
$total[$key] = array_sum(array($priceskipers[$key], $pricebootspers[$key]));
$supertotal = 0;
$id++;
echo "<pre>Data : " .$date[$key] . " | " . $number[$key] . " / " . $person[$key] . "| " . $type[$key] . " | " . $lenght[$key] . " | " . $boots[$key] . " | " . $size[$key] . "<br> " . $priceskipers[$key] . " + " . $pricebootspers[$key] . " = " . $total[$key] . " for this reservation (id" . $id . ").<hr></pre>";
unset($value);
foreach ($total as $key2 => $value2) {
$supertotal += $total[$key2];
$discount = (($supertotal) * 0.2);
$grandtotal = (($supertotal) - ($discount));
}
}
echo "<pre><b>Total " . $supertotal . " - 20% (discount for online renting) " . $discount . " = " . $grandtotal . ", your net amount.</b></pre>";
答案 0 :(得分:0)
首先,您应该更好地提供每个真实的输入变量,以便社区可以更轻松地模拟。
即使上面的代码不是正确的方法,但它仍然有效。 unset()
电话无需到此处。
接下来,有点重构,将最后一个foreach
块移出主循环:#1
foreach ($price as $key => $value) {
//old logic
}
foreach ($total as $key2 => $value2) {
$supertotal += $total[$key2];
$discount = (($supertotal) * 0.2);
$grandtotal = (($supertotal) - ($discount));
}
接下来,您甚至可以删除#1中foreach
循环中的整个计算:
$superTotal = array_sum($total);
$discount = $superTotal * 0.2;
$grandTotal = $superTotal - $discount;
最后,您的评论是关于在所有用户点击付费按钮之后然后事情被破坏,这意味着计算完全取决于click on pay button
之后的事件。