我想将一段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;
}
答案 0 :(得分:1)
[1,1]
的{{1}}填充数组。现在,您可以使用array_walk遍历数组,并检查70
是否小于$key
。如果是,则生成随机数,否则可以保持不变。
50
答案 1 :(得分:1)
这是使用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;
}, []);