Php 用户定义的数字范围

Php 用户定义的数字范围,php,Php,我有一个函数,其中对于特定的数字范围,必须应用一个百分比: 0-100欧元:5% >100欧元:3% 此数字范围和百分比应为用户定义的 实现应该尽可能简单 对于指定范围和计算结果,您有什么建议?假设您可以访问某种数据库,我会将值存储在那里。您至少需要3张桌子: 范围 id_范围 从你的号码 直到你的号码 百分比 使用者 id\u用户 用户范围 id_范围 id\u用户 使from_number和until_number列为空,以表示X之前和Y之后的任何内容。以下是我使用数组中定义

我有一个函数,其中对于特定的数字范围,必须应用一个百分比:

  • 0-100欧元:5%
  • >100欧元:3%
此数字范围和百分比应为用户定义的

实现应该尽可能简单


对于指定范围和计算结果,您有什么建议?

假设您可以访问某种数据库,我会将值存储在那里。您至少需要3张桌子:

范围

  • id_范围
  • 从你的号码
  • 直到你的号码
  • 百分比
使用者

  • id\u用户
用户范围

  • id_范围
  • id\u用户

使from_number和until_number列为空,以表示X之前和Y之后的任何内容。

以下是我使用数组中定义的规则计算结果的简短方法

$rules = array(
  5 => '0-100 EUR', // here the percentages and their corresponding values
  3 => '> 100 EUR'
);

$rand = mt_rand(0, 100); // calculate a random percent value
$lastPercentage = 0;

foreach($rules as $percentage => $val) {

  // create a range from 0-5 (in the first iteration)
  // every next iteration it is lastPercentage + 1 (5 + 1 in this case) to lastPercentage + current percentage
  $range = range($lastPercentage, $percentage + $lastPercentage);

  // yep, it is in the percentage range
  if (in_array($rand, $range)) {
    echo $lastPercentage,' < '.$rand.' > '.($percentage + $lastPercentage);
  }

  $lastPercentage = $percentage + 1; // +1 so that there are no overlapping ranges
}
$rules=数组(
5=>‘0-100欧元’,//此处为百分比及其对应值
3=>“>100欧元”
);
$rand=mt_rand(01100);//计算随机百分比值
$lastPercentage=0;
foreach($percentage=>$val的规则){
//创建一个从0到5的范围(在第一次迭代中)
//每下一次迭代,它是lastPercentage+1(本例中为5+1)到lastPercentage+当前百分比
$range=范围($lastPercentage,$percentage+$lastPercentage);
//是的,它在百分比范围内
if(在_数组中($rand,$range)){
回显$lastPercentage,“<”.$rand.>”。($percentage+$lastPercentage);
}
$lastPercentage=$percentage+1;//+1,因此没有重叠的范围
}