PHP生成1-200范围内20个随机数的简洁实现方案
更简洁的PHP生成随机数数组方案
当然有更优雅简洁的实现方式!你当前的代码重复调用20次rand()确实冗余,维护起来也麻烦(比如要改生成数量时得一个个数)。这里给你几种常用的优化写法:
方法1:使用for循环初始化
这是最直观的优化,通过循环批量添加随机数:
$x = []; // 循环20次,每次往数组里塞一个1-200的随机数 for ($i = 0; $i < 20; $i++) { $x[] = rand(1, 200); } echo '<pre>'; print_r($x); echo '</pre>';
方法2:一行代码搞定(array_fill + array_map)
如果追求代码简洁,可以用array_fill生成一个指定长度的占位数组,再通过array_map为每个元素生成随机数:
// 生成20个元素的数组,每个元素是1-200的随机数 $x = array_map(fn() => rand(1, 200), array_fill(0, 20, null)); echo '<pre>'; print_r($x); echo '</pre>';
注:如果你的PHP版本低于7.4,需要把匿名函数换成普通函数写法:function() { return rand(1,200); }
方法3:PHP 8.1+ 可选写法
如果使用PHP 8.1及以上版本,也可以结合range来实现,效果和上面一致:
$x = array_map(fn() => rand(1, 200), range(1, 20)); echo '<pre>'; print_r($x); echo '</pre>';
这些方法的优势在于:
- 代码更简洁,避免重复冗余
- 易维护:要修改生成的随机数数量时,只需要调整数字
20即可,不用手动修改20次rand()调用
内容的提问来源于stack exchange,提问作者user9682104
相关产品推荐
相关产品推荐

