【问题标题】:PHP: count how many times a random number appears in an array using a for loop?PHP:使用for循环计算随机数出现在数组中的次数?
【发布时间】:2013-08-08 00:56:37
【问题描述】:

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

这是我掷骰子的循环:

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

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

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

__ 已掷出 _ 个。”

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

【问题讨论】:

标签: php arrays for-loop random


【解决方案1】:

有一个原生函数array_count_values(),它使用输入数组的值作为键返回一个数组,并将它们在输入中的频率作为值。

您可以在 $int 上使用它,然后使用 for 循环遍历您的每个模具选项。

如果这不是一个选项,您可以使用 for 循环复制该函数过程,以使用 $int 数组的值作为键创建一个新数组,然后将每个键的值增加 1。

由于这是一项作业,我不想发布我将使用的实际代码。但是,如果您发布到目前为止您尝试过的内容,我愿意查看并提供更正/编辑以使您的代码正常工作。

【讨论】:

  • 感谢您的帮助,我已经取得了一些进展 - 它似乎正在工作。
【解决方案2】:

我认为这个可以解决你的问题..

 $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>";
}

【讨论】:

  • 欢迎您...如果对您有帮助,请点赞或选为最佳答案。
猜你喜欢
  • 1970-01-01
  • 2017-06-17
  • 1970-01-01
  • 2021-03-22
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多