dsbj66959 2015-12-07 16:35
浏览 15

使用PHP设置基于变量数的颜色阴影

Ok, I don't even know where to start with this one! I'll try and explain what I want to achieve, and we'll go from there....

I have a list of dates each with an associated number, say from 20-100. What I want to do is to output the date in a shade which represents the associated number. So 20 would display in a light blue and 100 in a dark blue. My code so far looks like this...

dateArray = Array('2001-01-01'=>30, '2001-02-01'=>40, '2001-03-01'=>50, '2001-04-01'=>60, '2001-05-01'=>70, '2001-06-01'=>80, '2001-07-01'=>90, '2001-08-01'=>90, '2001-09-01'=>80, '2001-10-01'=>70, '2001-11-01'=>60, '2001-12-01'=>50)  

$maxNum = max($dateArray);
$minNum = min($dateArray);

foreach($dateArray AS $date => $num){

$lightest = 'rgb(204,204,255)';
$darkest = 'rgb(0, 0, 179)';

///magic that converts $num into $shade goes here///

echo "<span style='color:$shade'>$date</span><br>" 

} 

Any ideas? Thanks

  • 写回答

2条回答 默认 最新

  • doumaoao0182 2015-12-07 17:03
    关注

    I would do something like that :

    $dateArray = Array('2001-01-01'=>30, '2001-02-01'=>40, '2001-03-01'=>50,   '2001-04-01'=>60, '2001-05-01'=>70, '2001-06-01'=>80, '2001-07-01'=>90, '2001-08-01'=>90, '2001-09-01'=>80, '2001-10-01'=>70, '2001-11-01'=>60, '2001-12-01'=>50)
    
    // get max and min values
    $maxNum = max($dateArray);
    $minNum = min($dateArray);
    
    // set rgb values for max and min
    $lightest = array(204, 204, 255);
    $darkest = array(0, 0, 179);
    
    foreach($dateArray AS $date => $num)
    {
        // get a "delta" where the current num value is
        $delta = ($num / $maxNum) - $minNum;
    
        // get a pro-rata values thanks to $delta
        $shadesNum = array(
            $delta * ($lightest[0] - $darkest[0]) + $darkest[0],
            $delta * ($lightest[1] - $darkest[1]) + $darkest[1],
            $delta * ($lightest[2] - $darkest[2]) + $darkest[2]
        );
    
        echo "<span style='rgb(".implode(',', $shadesNum).")'>$date</span><br>";
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么