2016-12-01 7 views
0

私はPHPでショッピングカートを作成していますが、特定の商品は半額で購入します。ユーザーがアイテムを購入すると、オファーが合計から差し引かれるようになりますが、私はこのことを数学的にどうやってやるのかと固執しています。PHPでショッピングカート全体を1つ買う

ループは、データベースからデータを取得する場合はこれまでのところ、私はこのようなものを持っている:感謝すべてのヘルプ

if ($arraycart['Item'] == "A1" and $quantity > 1) { 
//calculate here buy one get one half price 
} 

$total = $total+($arraycart['Price']*$quantity); 

は、その後、私はそれはの線に沿って何かになると思います。

+0

'$ total = $ total +((0.5 * $ arraycart ['Price'])* $ quantity);'? –

+0

@u_mulderこれはすべての半分の価格を追加します。彼らはすでに全価格時間数量を計算しています。あなたはそれの上に別の半額を追加したくないでしょう。あなたは、$ total = $ total - ($ arraycart ['Price'] * 0.5 * floor($ quantity/2)) 'のように半分の値段を半分にすることをお勧めしますの項目の。これは、もちろん、$ totalの計算をした後です。 –

+0

私はちょうどヒントを与えました。それを適用するかどうかの確認はOPの仕事です –

答えて

1
<?php 
$total = 0; 
$arraycart['Price'] = 10; 
$arraycart['Item'] = 'A1'; 

$quantity = 3; // change item quantity here 

if ($arraycart['Item'] == "A1" and $quantity % 2 == 0) { 
    //calculate here buy one get one half price 
    $real = ($quantity/2)*$arraycart['Price']; 
    $half = ($quantity/2)*($arraycart['Price']/2); 

    $total = $real+$half; 

} else { 
    $quantity = $quantity-1; 

    $real = ($quantity/2)*$arraycart['Price']; 
    $half = ($quantity/2)*($arraycart['Price']/2); 

    $total = $real+$half+$arraycart['Price']; 

} 

echo $total; 
?> 
+0

あなたは最初のものを購入しただけでなく、全価格で購入されたすべてのものが次の半分であることを意味するものを購入するのではなく、最初からすべてを50%割引します。数量が5の場合は、2にする必要があるときに4つの割引を与えています。 –

+0

if(および$ quantity <3)または他のトリックで1つ以上の条件を追加します:) –

+0

、割引はありませんか? –

関連する問題