我需要这个数组变为动态:(初始输出)
$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');
怎么可能呢?
答案 0 :(得分:3)
要将某些内容“推”到数组的末尾,请使用[]
语法:
$data[0][] = 'something to add to array';
E.g。
$data[0] = array();
$data[0][] = 'first';
$data[0][] = 'second';
$data[0]
将包含:
array('first','second');
答案 1 :(得分:3)
for($i = 0; $i < N; $i++) {
$data[0][] = 'var' . $i;
}
答案 2 :(得分: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);
答案 3 :(得分:0)
也许你想要:array_push()。您可以在循环中将变量添加到数组中。