从数据库中获取数据列表:
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之前被重复我是新手在这里所以请帮助我。
答案 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]; }