2

我需要这个数组变成动态的:(初始输出)

$data[0] = array('var0');

我有一个 for 循环,它返回(在几个条件之后)作为 VAR 的东西:

for($i = 0; $i < N; $i++) 
    {
    (...) END AS var1;
    (...) END AS var2;
    (...) END AS var3;
    (...) END AS varN;
    (...) END AS (...)
    }

第一个周期后的预期输出:

 $data[0] = array('var0','var1');

第二个周期后的预期输出:

 $data[0] = array('var0','var1','var2');

继续(预期的最终输出):

 $data[0] = array('var0','var1','var2','var3','varN');

怎么可能做到?

4

4 回答 4

3
for($i = 0; $i < N; $i++) {
    $data[0][] = 'var' . $i;
}
于 2013-01-21T15:42:24.993 回答
3

要将某些内容“推”到数组的末尾,请使用以下[]语法:

$data[0][] = 'something to add to array';

例如

$data[0] = array();
$data[0][] = 'first';
$data[0][] = 'second';

$data[0]将包含:

array('first','second');
于 2013-01-21T15:38:40.533 回答
1

为什么不给数字范围加前缀,例如通过array_map

$data[$i] = array_map(function($v) {return 'var' . $v;}, range(0, $i));

如果你在范围内有一个范围,你也可以这样做:

$prefix = function($prefix) {
    return function($v) use ($prefix) {
        return $prefix . $v;
    };
};

$map = function($v) use ($prefix) {
    return array_map($prefix('var'), range(0, $v));
}

$data = array_map($map, range(0, $n - 1));

或一次全部(压缩):

$data = array_map(function($v) {
    return array_map(function($v) { return 'var' . $v;}, range(0, $v));       
}, range(0, $n - 1);
于 2013-01-21T15:46:30.017 回答
0

也许你想要:array_push()。然后,您可以将变量添加到循环中的数组中。

于 2013-01-21T15:39:09.137 回答