【发布时间】:2012-01-13 14:16:37
【问题描述】:
我有一个数组,比如:
$hex = array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
我想将 6 个随机元素作为字符串返回(例如 1a3564):
$random_color = array_rand($hex,6);
我认为内爆 $random_color 可以解决问题:
echo implode($random_color);
但是 array_rand() 存储元素在父数组中的位置,而不是这个数组元素,所以我得到类似:
259111213 而不是259bcd。
我知道这正是我想要的:
echo $hex[$random_color[0]];
echo $hex[$random_color[1]];
echo $hex[$random_color[2]];
echo $hex[$random_color[3]];
echo $hex[$random_color[4]];
echo $hex[$random_color[5]];
但是:
有没有办法在 array_rand() 中存储数组元素?为什么它首先存储元素的位置而不是元素?
实现我想要实现的目标的最佳方式是什么?
为什么 array_rand() 从不选择字母作为第一个元素,几乎从不作为第二/第三个元素(99% 的生成颜色看起来像 11111a 12345c 123456)?
【问题讨论】:
-
"实现我想要实现的目标的最佳方式是什么?" What's that?
-
@outis 来自问题“我想将 6 个随机元素作为字符串返回(例如 1a3564):”
-
@Michael:这不是首要目标。你读过链接的页面吗?
-
@outis: 我怎样才能随机生成一个十六进制颜色字符串:-)
-
@Rufinus:还有一些东西遗漏了。例如,为什么不能有重复的数字?了解总体目标(颜色的实际用途)将有助于退出 e abit。