随机颜色创建,无需更改页面刷新

时间:2017-07-11 10:59:53

标签: php codeigniter

  

从数据库中获取数据列表:

foreach ($rowset as $key => $value)
{
    $colorrange=str_split($value->id);
    $findend=end($colorrange);
    $response[$key]['color'] = $this->get_color($findend);
}

function to get color:

public function get_color($findend){
    if($findend == 0){
        return '#455C4F';
    }
    elseif($findend == 1){
        return '#CC5543';
    }
    elseif($findend == 2){
        return '#4A572C';
    }
    elseif($findend == 3){
        return '#6E352C';
    }
    elseif($findend == 4){
        return '#E34819';
    }
    elseif($findend == 5){
        return '#283811';
    }
    elseif($findend == 6){
        return '#0E2F44';
    }
    elseif($findend == 7){
        return '#DF3D82';
    }
    elseif($findend == 8){
        return '#A8CD1B';
    }
    elseif($findend == 9){
        return '#088DA5';
    }
    else{
        return '#292421';
    }  
}

它是一个很长的代码进程,我想减少代码并希望它通过循环和函数。

我希望每个Id都可以从数据库获得,因为我想要一个随机颜色。至少颜色不应该在30之前被重复我是新手在这里所以请帮助我。

2 个答案:

答案 0 :(得分:0)

试试这个,它会给你多色,你可以随意处理它。

 <?php
      foreach ($rowset as $key => $value)
                    {                
                        $colorrange=str_split($value->id);
                        $findend=end($colorrange);
                        $response[$key]['color'] = $this->get_color();
        }

 /****Random*Color**Function***/
    function get_color(){
    mt_srand((double)microtime()*1000000);
    $c = '';
    while(strlen($c)<6){
        $c .= sprintf("%02X", mt_rand(0, 255));
    }
    $color="#".$c;
    return $color;
  }

?>

答案 1 :(得分:0)

只需将最后一个选择颜色ID存储到您的数据库或某个地方,然后使用以下代码,这很简单

public function get_color($lastid){
    $colors = ['#455C4F', '#CC5543', '#4A572C',.....];

返回$ colors [$ lastid]; }