Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用函数中的值创建PHP数组_Php_Arrays - Fatal编程技术网

使用函数中的值创建PHP数组

使用函数中的值创建PHP数组,php,arrays,Php,Arrays,我想创建一个包含x个元素的数组,其中每个元素都是通过调用函数创建的。我正在寻找一种惯用的方法来做到这一点,它可以最小化状态,尤其是变异状态,同时也可以最小化命令性 我有一个执行此任务的工作代码,更具体地说,它使用一个返回随机字符的函数创建一个包含10个元素的数组 array_map( function() use ( $characters, $characterCount ) { return $characters[mt_rand( 0, $characterCoun

我想创建一个包含x个元素的数组,其中每个元素都是通过调用函数创建的。我正在寻找一种惯用的方法来做到这一点,它可以最小化状态,尤其是变异状态,同时也可以最小化命令性

我有一个执行此任务的工作代码,更具体地说,它使用一个返回随机字符的函数创建一个包含10个元素的数组

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标准库中找到的。我应该在前面提到这一点:我希望代码尽可能具有功能性和高级别。这种循环方法使用可变状态,非常必要。所以根据我的标准,不太好。