我从这里得到了一些代码:Color coding based on number
function GreenYellowRed($number) {
$number--; // working with 0-99 will be easier
if ($number < 50) {
// green to yellow
$r = floor(255 * ($number / 50));
$g = 255;
} else {
// yellow to red
$r = 255;
$g = floor(255 * ((50-$number%50) / 50));
}
$b = 0;
return "$r,$g,$b";
}
然后我按百分比输出调用它......就像这样:
"<span style='background-color: rgb(" . GreenYellowRed($percentage) . ")'>" . $percentage . "%</span>"
它按预期工作,但它使较低的数字为绿色,较高的数字为红色。在我的情况下,低百分比是坏的,高百分比是好的,但我不能解决改变什么,使其反向工作,以便高数字变绿,低数字变红。
我尝试了一些事情,但它似乎永远不会做我想要的......有人可以帮忙吗?
答案 0 :(得分:1)
Chnge this:
return "$r,$g,$b";
到此:
return "$g,$r,$b";
答案 1 :(得分:-2)
当我想到它时,太容易了!
我所要做的就是在if语句的每一侧交换$ r和$ g,如下所示:
function GreenYellowRed($number)
{
$number--; // working with 0-99 will be easier
if ($number < 50) {
// green to yellow
$g = floor(255 * ($number / 50));
$r = 255;
} else {
// yellow to red
$g = 255;
$r = floor(255 * ((50-$number%50) / 50));
}
$b = 0;
return "$r,$g,$b";
}
全部排序:)