建立了一个网站,其中包含五种预定义颜色的特定调色板,背景颜色就是其中之一。 CSS文件使用PHP呈现,这要归功于我能够得到以下工作(使用占位符颜色):
<?php
$bg_colors = array('red', 'blue', 'green', 'yellow', 'orange');
$bg_rand = $bg_colors[array_rand($bg_colors)];
?>
background-color:<?=$bg_rand?>;
现在的问题是有没有办法调用array_rand遗漏的四种颜色? 让我们说背景颜色变成了绿色,我怎么能特别称呼#1,#2,#4和#5?
原因是这五种颜色将在整个网站中使用,并且在这种情况下,具有与身体背景相同的背景颜色的任意div是不可取的。我怎样才能做到这一点?
答案 0 :(得分:1)
从理论上讲,虽然这不是最干净的选择,但是从长远来看,你可以随意洗牌,然后使用第一个结果,留下以下4个随你工作。
例如:
<?php
$bg_colors = array('red', 'blue', 'green', 'yellow', 'orange');
shuffle($bg_colors);
?>
background-color:<? echo $bg_colors[0]; ?>
这将使剩余的4种颜色随机地保留在数组值(1,2,3,4)
中EG; $ bg_colors [1],$ bg_colors [2]等。
答案 1 :(得分:0)
答案 2 :(得分:0)
你可以填充数组并逐个获取值,如下所示:
<?php
$bg_colors = array('red', 'blue', 'green', 'yellow', 'orange');
shuffle($bg_colors);
$bg_rand = array_shift($bg_colors);
现在你将在阵列中留下4种颜色。
此外,您可以制作5种颜色的特定css文件,并随机添加其中一个到页面。但是你会说只有5种不同的颜色模式。现在你可以拥有120或者什么
答案 3 :(得分:0)
您可以在使用后删除颜色
$rand_index = array_rand($bg_colors);
$bg_rand = $bg_colors[$rand_index];
unset($bg_colors[$rand_index]);
或者将已使用的颜色保存在名为$used_colors
的第二个数组中,然后在选择随机颜色之前将其过滤掉
$available_colors = array_intersect($bg_colors, $used_colors);
$bg_rand = $available_colors[array_rand($available_colors)];