Php相当于Javascript的Array.from()

问题描述 投票:0回答:2

我想将一段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;
}
javascript php arrays
2个回答
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,1]填充70大小为array_fill的阵列。
  • 现在,您可以使用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)]; });
© www.soinside.com 2019 - 2024. All rights reserved.