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

时间:2013-08-08 00:56:38

标签: php arrays for-loop random

我正在尝试模拟一个11面骰子的2000个骰子卷(两侧的数字2到12)。我必须将数据存储在一个数组中。

这是模具滚动的循环:

for($counter = 0; $counter <=2000; $counter++)
{
$die = rand(2, 12);
$int[$counter] = $die;
echo " $die ,";
}

^似乎工作正常,因为我有2000个随机数输出。

下一部分是我遇到麻烦的地方。我必须输出一些结果。为了简单起见,假设我必须输出使用echo语句滚动的五个数字,如:

_ _五个人被推了。”

我似乎无法让它发挥作用。对于这个任务,我必须使用for循环。我尝试使用if语句创建一个新语句,并在上面的循环中包含if语句。也没有运气。我怎样才能做到这一点?

2 个答案:

答案 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>";
}