php如何生成多个随机不重复颜色代码

functionrandColor($num){//colorvaluelimits0-16777215;$prehash='#';//usingstring'#'bef... function randColor($num){
//color value limits 0-16777215;
$prehash='#'; //using string '#' before the color value;
$rsArr= array();
$color=rand(0,16777215);
for($i=0;$i<$num;$i++){
$rsArr[$i]=$prehash.dechex($color);
}
return $rsArr;
}
print_r(randColor(20));

以上代码是生成20个相同颜色代码,但是我想要的结果是随机生成20个不重复的颜色代码,请问如何修改呢
展开
 我来答
百度网友e92d8c3
2014-04-26 · TA获得超过561个赞
知道小有建树答主
回答量:745
采纳率:0%
帮助的人:524万
展开全部

颜色取值范围16777215这样的值不准确也不科学吧。颜色由RGB组成。一共有255*255*255种可能。直接组合一下就行了。

$base=range(0,255);
$R=array_rand($base,20);shuffle($R);
$G=array_rand($base,20);shuffle($G);
$B=array_rand($base,20);shuffle($B);
for ($i=0;$i<20;$i++){
    $color[]='#'.dechex($R[$i]).dechex($G[$i]).dechex($B[$i]);//这里再加上补足两位就ok了
}
var_dump($color);
479245760
推荐于2018-03-29
知道答主
回答量:36
采纳率:0%
帮助的人:15.6万
展开全部
吧$color = rand(0,16777215);
放到for循环中ok····· 这样重复的几率很小,
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9db77d9
2014-04-26 · 超过12用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:21.1万
展开全部
<?php
function randColor($num){
//color value limits 0-16777215;
$prehash='#'; //using string '#' before the color value;
$rsArr= array();

for($i=0;$i<$num;$i++){
$color=rand(0,16777215);
$rsArr[$i]=$prehash.dechex($color);
}
return $rsArr;
}
print_r(randColor(20));
?>
把生成随机数字的函数放到循环里就行,如果你放到外面,rand函数只执行一次,当然最后会
只有一个值
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式