我想将一段javascript转换成php来满足我的需要,但是如果不编写比所需更多的代码,我就找不到与该方法等效的方法。const digits = Array.from({ length: 50 }, () => [randomNumber(4), randomNumber(4)]).concat( Array(20).fill([1,1]));function randomNumber(limit) { return Math.floor(Math.random() * limit) + 1;}
2 回答
![?](http://img1.sycdn.imooc.com/5458620000018a2602200220-100-100.jpg)
慕无忌1623718
TA贡献1744条经验 获得超4个赞
好的,您可以先使用array_fill将数组[1,1]的大小填满。70
现在,您可以使用array_walk遍历数组并检查是否$key小于50。如果是,则生成随机数,否则可以将其保留原样。
$arr = array_fill(0,70,[1,1]);
array_walk($arr,function(&$value,$key){
if($key < 50) list($value[0],$value[1]) = [rand(0,4),rand(0,4)];
});
![?](http://img1.sycdn.imooc.com/5333a0780001a6e702200220-100-100.jpg)
烙印99
TA贡献1829条经验 获得超13个赞
这是使用的一种方法array_reduce。我们将所有数字从1到70的数组(使用生成range)传递给它,并使用该值确定是将随机2元素数组还是固定数组添加到输出数组:
$arr = array_reduce(range(1, 70), function ($c, $v) {
$c[] = $v <= 50 ? [rand(1, 4), rand(1,4)] : [1,1];
return $c;
}, []);
- 2 回答
- 0 关注
- 168 浏览
添加回答
举报
0/150
提交
取消