我正在尝试模拟一个11面骰子(侧面的数字为2到12)的2000个骰子滚动。我必须将数据存储在一个数组中。
这是我的循环,骰子在这里滚动:
for($counter = 0; $counter <=2000; $counter++)
{
$die = rand(2, 12);
$int[$counter] = $die;
echo " $die ,";
}
^这似乎还可以,因为我有2000个随机数输出。
下一部分是我遇到麻烦的地方。我必须输出一些结果。为了简单起见,假设我必须输出用类似于的回声语句滚动的五个数字
"__五个滚动。"
我似乎无法让它发挥作用。对于这个作业,我必须使用For循环。我试着用if语句制作一个新的语句,并在上面的循环中包含一个if语句。两者都没有运气。我怎样才能做到这一点?
有一个本机函数array_count_values()
,它使用输入数组的值作为键,并使用它们在输入中的频率作为值来返回数组。
您可以在$int
上使用它,然后使用for循环遍历每个骰子选项。
如果这不是一个选项,您可以复制该函数过程,方法是使用for循环创建一个新数组,使用$int
数组的值作为键,然后将每个键的值增加1。
由于这是一项作业,我不想发布我将使用的实际代码。但是,如果你发布你迄今为止尝试过的内容,我愿意仔细查看并提供更正/编辑,以使你的代码发挥作用。
我认为这个会解决你的问题。。
$array = array();
for($counter = 0; $counter <=2000; $counter++)
{
$die = rand(2, 12);
$array[]= $die;
}
for($c=2;$c<=12;$c++){
foreach($array as $r){
if($c==$r)
{
$arr[$c]+=1;
}
}
}
foreach($arr as $key=>$value)
{
echo $value." [".$key."] were rolled<br>";
}