我正在尝试模拟一个11面骰子的2000个骰子卷(两侧的数字2到12)。我必须将数据存储在一个数组中。
这是模具滚动的循环:
for($counter = 0; $counter <=2000; $counter++)
{
$die = rand(2, 12);
$int[$counter] = $die;
echo " $die ,";
}
^似乎工作正常,因为我有2000个随机数输出。
下一部分是我遇到麻烦的地方。我必须输出一些结果。为了简单起见,假设我必须输出使用echo语句滚动的五个数字,如:
“ _ _五个人被推了。”
我似乎无法让它发挥作用。对于这个任务,我必须使用for循环。我尝试使用if语句创建一个新语句,并在上面的循环中包含if语句。也没有运气。我怎样才能做到这一点?
答案 0 :(得分:1)
有一个本机函数array_count_values()
,它使用输入数组的值作为键返回数组,并将输入的频率作为值返回。
您可以在$int
上使用它,然后使用for循环遍历每个模具选项。
如果这不是一个选项,您可以使用for循环复制该函数进程,使用$int
数组的值作为键创建一个新数组,然后将每个键的值增加1
由于这是一项作业,我不想发布我会使用的实际代码。但是,如果您发布到目前为止您尝试过的内容,我愿意查看并提供更正/修改以使您的代码正常工作。
答案 1 :(得分:0)
我认为这个会解决你的问题..
$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>";
}