使用函数中的值创建PHP数组
我想创建一个包含x个元素的数组,其中每个元素都是通过调用函数创建的。我正在寻找一种惯用的方法来做到这一点,它可以最小化状态,尤其是变异状态,同时也可以最小化命令性 我有一个执行此任务的工作代码,更具体地说,它使用一个返回随机字符的函数创建一个包含10个元素的数组使用函数中的值创建PHP数组,php,arrays,Php,Arrays,我想创建一个包含x个元素的数组,其中每个元素都是通过调用函数创建的。我正在寻找一种惯用的方法来做到这一点,它可以最小化状态,尤其是变异状态,同时也可以最小化命令性 我有一个执行此任务的工作代码,更具体地说,它使用一个返回随机字符的函数创建一个包含10个元素的数组 array_map( function() use ( $characters, $characterCount ) { return $characters[mt_rand( 0, $characterCoun
array_map(
function() use ( $characters, $characterCount ) {
return $characters[mt_rand( 0, $characterCount - 1 )];
},
array_fill( 0, 10, null )
)
当我开始这样做时,我正在寻找以下内容,但没有找到:
array_create(
function() {},
10
);
通常只使用循环结构,如:
$array = array();
for($i = 0; $i < 10; $i++) {
$array[] = randomfunction();
}
$array=array();
对于($i=0;$i<10;$i++){
$array[]=randomfunction();
}
如果要将其包装到函数中,请执行以下操作:
function genArray($x, $func) {
$array = array();
for($i = 0; $i < $x; $i++) {
$array[] = $func();
}
return $array;
}
函数genArray($x,$func){
$array=array();
对于($i=0;$i<$x;$i++){
$array[]=$func();
}
返回$array;
}
然后您可以向它传递元素的数量以及要使用的函数 “以更惯用的方式”?@WizardCoder我假设op是php的一个本机函数,可以实现这一点,比如“array\u create”示例我喜欢基于
array\u map()
的方法。怎么了?对我来说似乎很简单…使用range(0,9)
而不是array\u fill
更短取决于你想对数组做什么,你可以使用生成器,而不是genArray
函数基本上就是我想在PHP标准库中找到的。我应该在前面提到这一点:我希望代码尽可能具有功能性和高级别。这种循环方法使用可变状态,非常必要。所以根据我的标准,不太好。