订单价格总额:
区间 区间内单价
1 ~ 5 => 30,
6 ~ 20 => 15,
21 ~ 50 => 10,
51 ~ 100 => 9,
101 ~ 200 => 8,
201 ~ 500 => 7,
501 ~ 1000 => 6,
1001 ~ => 5
<?php
# 价格规则, key 为区间段长度,value为价格区间内的单价
$rule = [
5 => 30,
20 => 15,
50 => 10,
100 => 9,
200 => 8,
500 => 7,
1000 => 6,
2000 => 5,
3000 => 4,
4000 => 3,
5000 => 2,
6000 => 1
];
# 阶梯移除的部分价格设置
$rule_yichu = 1;
function fee($rule=[], $rule_yichu, $order=0){
if($order <= 0 ){
return 0;
}
$sum = 0;
$last = $order;
foreach($rule as $key=>$val){
if($last - $key >= 0){
$sum += $key * $val;
} else {
$sum += $last * $val;
break;
}
$last = $last - $key;
}
if($last > 0){
$sum += $last * $rule_yichu;
}
return $sum;
}
for($i=1; $i<101; $i++){
echo $i,'---',fee($rule, $rule_yichu ,$i).PHP_EOL;
}