PHP等于Javascript的Array.from()

我想将一段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;

}


跃然一笑
浏览 169回答 2
2回答

慕无忌1623718

好的,您可以先使用array_fill将数组[1,1]的大小填满。70现在,您可以使用array_walk遍历数组并检查是否$key小于50。如果是,则生成随机数,否则可以将其保留原样。$arr = array_fill(0,70,[1,1]);array_walk($arr,function(&$value,$key){&nbsp; &nbsp; if($key < 50) list($value[0],$value[1]) = [rand(0,4),rand(0,4)];});

烙印99

这是使用的一种方法array_reduce。我们将所有数字从1到70的数组(使用生成range)传递给它,并使用该值确定是将随机2元素数组还是固定数组添加到输出数组:$arr = array_reduce(range(1, 70), function ($c, $v) {&nbsp;&nbsp; &nbsp; $c[] = $v <= 50 ? [rand(1, 4), rand(1,4)] : [1,1];&nbsp; &nbsp; return $c;}, []);
打开App,查看更多内容
随时随地看视频慕课网APP