我不知道如何表达这是 PHP。
我有 100 和 420 作为我希望获得的最小值和最大值。
假设我有:
1000
4534
34566
123145
12312265
现在,我该怎么说:
取 4534 并知道 1000 = 420 和 12312265 = 100 确定 4534 值。
为了更清楚,我试图用正方形表示网页排名,因此如果排名为 1,则应将其转换为我的最大值/大小 420,但是如果页面的受欢迎程度较低,比如 13000,那么它大小应该接近最小值 100。我知道所有值。
谢谢。
我仍然无法弄清楚这一点。
到目前为止,我使用的是第一个答案中的代码:
$srcmin=1185;
$srcmax=25791525;
$destmin=100;
$destmax=420;
$pos = (($RANK - $srcmin) / ($srcmax-$srcmin)) ;
$rescaled = ($pos * ($destmax-$destmin)) + $destmin;*/
$percentage = (($RANK - $MIN) * 100) / $MAX;
$SIZE = (($percentage / 320) * 100) + 100
$RANK 是我的网页排名值,$SIZE 是我需要相应调整它们大小的值。这不起作用(毫无疑问是我的错误)我从 $SIZE 得到的全部是 100。
最佳答案
这应该说明....
$values=array(1000, 4534, 34566, 123145, 12312265);
$srcmin=$values[0];
$srcmax=$values[count($values)-1];
$destmin=420;
$destmax=100;
foreach($values as $x)
{
//how far in the source range is $x (0..1)
$pos = (($x - $srcmin) / ($srcmax-$srcmin))
//figure out where that puts us in the destination range
$rescaled = ($pos * ($destmax-$destmin)) + $destmin;
}
您想知道每个数字在源范围内有多远,这就是 $pos 值为您提供的信息。鉴于此,您可以将其转化为您在目的地范围内的距离。
关于php - 在 PHP 中缩放值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3136770/