从php中的2个数字范围生成一个随机数

从php中的2个数字范围生成一个随机数,php,Php,我当前的代码生成116个介于34和76之间的随机数,并将它们放入一个名为$common的数组中 for($i = 0; $i < 116; $i++){ $common[] = mt_rand(34, 76); } ($i=0;$i

我当前的代码生成116个介于34和76之间的随机数,并将它们放入一个名为$common的数组中

for($i = 0; $i < 116; $i++){
    $common[] = mt_rand(34, 76);
}
($i=0;$i<116;$i++)的
{
$common[]=mt_rand(34,76);
}
是否可以从两组数字中生成一个随机数?例如,我想让它在1-22和34-76之间选择116个随机数。

1。这里有一个方法: 3.我在等午餐,所以这里有另一个,类似于第一个: ($i=0;$i<116;$i++)的
{
$common[]=mt_rand(0,1)?mt_rand(1,22):mt_rand(34,76);
}
  • 如果随机错误为0,则从第一个范围生成
  • 如果随机truthy 1,则从第二个范围生成
1。这里有一个方法: 3.我在等午餐,所以这里有另一个,类似于第一个: ($i=0;$i<116;$i++)的
{
$common[]=mt_rand(0,1)?mt_rand(1,22):mt_rand(34,76);
}
  • 如果随机错误为0,则从第一个范围生成
  • 如果随机truthy 1,则从第二个范围生成

    • for($i=0;$i<116;$i++){if(mt_rand(1,2)>1)$common[]=mt_rand(1,22);else$common[]=mt_rand(34,76)}
      for($i=0;$i<116;$i++){if(mt u rand(1,2)>1)$common[]=mt rand(1,22);else$common[]=mt rand(34,76)你的第二个选择更好。这是我最初的想法,为每个范围创建一个数组,合并它们,然后从中随机抽取一个数字。我不确定是否有更优雅的方法。第三种方法如何?你的第二种方法要好得多。这是我最初的想法,对每个范围做一个数组,合并它们,然后从中随机抽取一个数字。我不确定是否有更优雅的方式。第三种呢?
      for($i = 0; $i < 116; $i++){
          $common[] = array(mt_rand(1, 22), mt_rand(34, 76))[mt_rand(0, 1)];
      }
      
      $range = array_merge(range(1, 22), range(34, 76));
      
      for($i = 0; $i < 116; $i++){
          $common[] = $range[array_rand($range)];
      }
      
      $common[] = $range[mt_rand(0, count($range)-1)];
      
      for($i = 0; $i < 116; $i++){
          $common[] = mt_rand(0, 1) ? mt_rand(1, 22) : mt_rand(34, 76);
      }