PHP- 生成渐变,然后根据数据库中的 "rank" 值选择颜色

PHP- Generate a gradient then pick a color depending on the "rank" value from database


我有 table 个用户和 table 个用户数据。两者都与主键连接,我select来自userdata的"rank",并将其分配给用户。
所以,我想在一个页面上打印大约 100 个用户,并且需要根据他们的等级对他们的昵称进行着色。等级从 -int max 到 int max 不等,但颜色只会在 -7000 到 7000 范围内变化。
我希望渐变为红黑(中间)-绿色。 它应该如何工作的示例:
-从数据库中获取用户排名(已经得到)
- 在内存中生成一个渐变或者类似这样的东西
-选择一个值,例如如果用户等级为 3500,则选择梯度 75% 的位置,从左数(中间为黑色) - 使用之前获得的颜色作为十六进制值

为 link 之前的跨度着色

任何想法我怎样才能足够快地做到这一点,以便 php 代码不会计算太多?

我会这样进行:

  • 如果得分在 -7000 和 +7000 之间,则计算用户百分比得分 $userPercentage = $userScore/7000(如果不在两者之间,则设置为 -7000 或 +7000)。

  • 给每个用户的名字一个style="color: rgb(x,y,0);"属性.

使用此代码:

if($userScore < 0){
    percentage *= -1;
    echo('color: rgb('.255*$percentage.', 0, 0);');
} else {
    echo('color: rgb(0, '.255*(1-$percentage).', 0);');
}