用于转换星级评定值的PHP代码

时间:2018-06-03 09:45:55

标签: php

我给出的评级值为1.0到6.0。这里1.0是最好的,6.0是最坏的评级。我必须转换这样的评级。 如果1.0是给定的评级值,我将必须显示5.0 和IF 6.0是给定的评级值,我必须显示1.0 因此,如果3.0是给定的评级值,我将必须显示2.5,依此类推。我正在从外部网站获取此1到6的评级。需要将其转换为1到5到我的网站。

1 个答案:

答案 0 :(得分:1)

这更多是关于数学而不是关于php。

所以让我们看看,首先我们需要扭转价值观。因为我们希望分别在评级的哪一端变得最差和最好。

$reverseRating = 7.0 - $inputRating;

这会将1.0转换为6.06.0转换为1.0等。

现在剩下要做的就是将值从6星(输入范围:6 - 1 = 5.0)缩小为5星(输出范围:5 - 1 = 4.0)。为此,我们将所有内容降低到0,缩小它,然后将其移回1。

$outputRating = ($reverseRating - 1.0) / 5.0 * 4.0 + 1.0;

写成紧凑的单行,这导致

$outputRating = (6.0 - $inputRating) * 0.8 + 1.0;

注意

输入3.0导致2.5的结论是错误的。

由于最低值为1而非0,因此输入评级量表上的中心值 3, 3.5

6 5 4 (3.5) 3 2 1

输出中心值相同, 2.5, 3

1 2 3 4 5

输入上的

3.0实际上比中心略好,并且会在输出时映射到3.4