php - 如何根据项目的价格范围计算总成本
问题描述
我需要根据范围计算项目的总成本:
if ($itemCount <11)
{
$cost_for_range = 1;
}
if ($itemCount <26 && $itemCount >=11)
{
$cost_for_range = 0.75;
}
if ($itemCount <50 && $itemCount >=26)
{
$cost_for_range = 0.55;
}
问题是 - 我需要考虑早期水平来计算最终成本 - 例如,如果购物车有 30 件商品,价格将是:
- 前 10 个 1 美元 = 10 美元
- 另外 15 个 0.75 美元 = 11.25 美元
- 另外 5 个 0.55 美元 = 2.75 美元,所以总计 24 美元。如何在php中计算这个?
解决方案
min
使用和max
做各种范围有一些乐趣......
function calculateCost ( int $count, float $cost ) {
$total = min(10, $count) * $cost;
$total += (min(15, max(0, $count - 10)) * ($cost * 0.75));
$total += (max(0, $count - 25) * ($cost * 0.55));
return $total;
}
第二个计算使用max(0, $count - 10)
,所以这会取消前 10 个,但确保它不会变为负数。然后它使用min(15, max(0, $count - 10))
15 中的最小值或剩下的数字(所以如果是 30,这将是 15)。
最后一个只是max
计数中的 - 25 或 0,所以对于 30,这是 5。
与...一起使用
echo calculateCOst( 30, 1 );
给24
推荐阅读
- python - 云计算:在 5 台计算机上运行 Python 程序并找到非空列表中的最小值
- javascript - 如何从 API 源下载 csv 文件?
- javascript - 置换算法的BigO
- php - Wordpress - 如果内容条件隐藏 the_content() 调用的部分标记父级
- python - 如何用metpy正确计算温度平流,单位误差
- php - 在 Laravel 8 中动态获取选中的单选按钮值
- keycloak - 处理领域名称中具有特殊字符的 Keycloak 领域
- video - A帧切换模板导致声音(视频?)重叠
- c# - 使用空白键值对建模 json
- python - torchvision.datasets 中数据集的 .data 属性不适用于 ImageFolder?