代码必须是PHP,这怎么可能?
我想根据这些原则计算价格:
0-50 = 3 pr单位。
50-100 = 2.5 pr单位。
100-150 = 2 pr单位。
150 + = 1.5 pr单位。
例如,125个单位的订单将花费:
(50 * 3) + (50 * 2,5) + (25 * 2) = 325
我认为这可以通过while循环完成,或者可能有一些功能可以更轻松地完成它?
答案 0 :(得分:0)
方法1:您可以进行循环并检查数字是否小于或大于值(50,100 ...)以设置单价。
$value = 1000;
echo getPrice($value);
function getPrice($value)
{
$price = 0;
$prices = array(3,2.5,2,1.5);
for ( $i = 1 ; $i <= $value ; $i++ )
{
if ( $i < 50 ) $price += $prices[0];
else if ( $i < 100 ) $price += $prices[1];
else if ( $i < 150 ) $price += $prices[2];
else $price += $prices[3];
}
return $price;
}
方法2:您可以计算每个价格区间。
$value = 1000;
echo getPrice($value);
function getPrice($value)
{
$price = 0;
$prices = array(3,2.5,2,1.5);
if ( $value > 150 )
return $prices[0] * 50 + $prices[1] * 50 + $prices[2] * 50 + ( $value - 150 ) * $prices[3];
if ( $value > 100 )
return $prices[0] * 50 + $prices[1] * 50 + ( $value - 100 ) * $prices[2];
if ( $value > 50 )
return $prices[0] * 50 + ( $value - 50 ) * $prices[1];
return $value * $prices[0];
}
答案 1 :(得分:0)
function calculatePrice($numberOfUnits) {
// Initialise price
$price = 0;
// Prices: amount for category => price for category
// Starts with largest category
$prices = array(150 => 1.5, 100 => 2, 50 => 2.5, 0 => 3);
// Loop over price categories
foreach($prices as $categoryAmount => $categoryPrice) {
// Calculate the numbers that fall into the category
$amount = $numberOfUnits - $categoryAmount;
// If units fall into the category, add to the price
// and calculate remaining units
if($amount > 0) {
$price += $amount*$categoryPrice;
$numberOfUnits -= $amount;
}
}
// Return the total price
return $price;
}
您可以在行动here中看到它。