0

誰かが私を少し助けてくれませんか。ショッピング カートの内容をループするループがあります。追加購入した商品に 25% の割引を適用したいと考えています。したがって、基本的に最初の商品は定価で、他のすべての商品は 25% 割引されます。さまざまな方法を試しましたが、すべてまたはまったく割引が適用されないようです。

以下のループは、ステートメントとその内容を削除しifて割引を適用したくない場合に完全に機能します。現状では、割引はまったく追加されません。状態を削除してそのif内容を使用すると、すべてのアイテムに 25% の割引が適用されます。

for($Loop = 0; $Loop < count($Cart); $Loop++)
{
    $Total += $ShoppingCart[$Loop][Price];

    if($Loop > 1) {
        $Total += $ShoppingCart[$Loop][Price];
    $PercentageAmount = 25;
    $TotalPrice = $TotalPrice * ((100-$PercentageAmount) / 100);    
    }
}

編集:

残念ながら、技術的には良いかもしれませんが、私の問題を解決する答えはありません。ループ内に 2 つの if ステートメントを配置し、それらの合計を計算する必要がありました。理想的なソリューションではありませんが、完璧に機能します。どういうわけか私はそれを並べ替える必要があるので、最も高価なアイテムは定価です. この方法でループを使用することに縛られず、代わりに配列関数を使用できれば、はるかに簡単になります。

$i = 0; 
for($Loop = 0; $Loop < count($Cart); $Loop++)
{
    if($i == 0) {
        $Total += $ShoppingCart[$Loop][Price];
    }                               
    if($i > 0) {
        $TotalMulti += $ShoppingCart[$Loop][Price];
        $TotalMulti = $TotalMulti * .75;    
    }
    $i++;
}
$NewTotal = $Total + $TotalMulti;
4

3 に答える 3

0

お役に立てれば:

for($Loop = 0; $Loop < count($Cart); $Loop++)
{
    # if not first item then discount price
    if($Loop > 1) {
        $PercentageAmount = 25;
        # grab the price
        $itemPrice = $ShoppingCart[$Loop][Price];
        # what should the user pay? 
        $itemDiscountPrice = $itemPrice * (100.0 - $PercentageAmount) / 100.0
        # add it to total
        $Total += $itemDiscountPrice;
    } else {
        # if first item -> full price
        $Total += $ShoppingCart[$Loop][Price];
    }
}
于 2013-06-20T14:52:13.663 に答える