我想将一段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;
}
这是使用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;
}, []);
[1,1]
填充70
大小为array_fill的阵列。$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)];
});