我想创建一个包含x个元素的数组,其中每个元素都是通过调用函数创建的。我正在寻找一种惯用的方法,以最大限度地减少状态,特别是变异状态,并最大限度地减少命令性。
我有完成此任务的工作代码,更具体地说,它使用一个返回随机字符的函数创建一个包含10个元素的数组。
array_map(
function() use ( $characters, $characterCount ) {
return $characters[mt_rand( 0, $characterCount - 1 )];
},
array_fill( 0, 10, null )
)
从这开始,我正在寻找类似下面的内容,但没有找到它:
array_create(
function() {},
10
);
答案 0 :(得分:3)
通常只需使用循环结构,如:
$array = array();
for($i = 0; $i < 10; $i++) {
$array[] = randomfunction();
}
如果要将其包装在函数中,请执行以下操作:
function genArray($x, $func) {
$array = array();
for($i = 0; $i < $x; $i++) {
$array[] = $func();
}
return $array;
}
然后你可以传递元素的数量和要使用的函数!