PHP等于Javascript的Array.from()

时间:2019-04-14 05:42:11

标签: javascript php arrays

我想将一段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 个答案:

答案 0 :(得分:1)

  • 好的,您可以先使用array_fill用大小为[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;
}, []);