2

この配列を動的にする必要があります:(初期出力)

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

(いくつかの条件の後)VARとして何かを返すforサイクルがあります:

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');

2番目のサイクル後に期待される出力:

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

そして続けてください(期待される最終出力):

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

どうすればそれができますか?

4

4 に答える 4

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 に答える
3
for($i = 0; $i < N; $i++) {
    $data[0][] = 'var' . $i;
}
于 2013-01-21T15:42:24.993 に答える
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 に答える