为了账号安全,请及时绑定邮箱和手机立即绑定

PHP等于Javascript的Array.from()

PHP等于Javascript的Array.from()

PHP
跃然一笑 2021-04-09 13:15:46
我想将一段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 回答

?
慕无忌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)];

});


查看完整回答
反对 回复 2021-04-23
?
烙印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;

}, []);


查看完整回答
反对 回复 2021-04-23
  • 2 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信