PHP:使用for循环计算一个随机数在数组中出现的次数


PHP: count how many times a random number appears in an array using a for loop?

我正在尝试模拟一个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>";
}