3

for ループの番号に応じて値が格納されるように、名前を変更したい配列があります。このようなことを試しましたが、エラーが発生しました。

for ($i =0;$i<4;$i++){

$array.$i = array();

push stuff into array;




}

したがって、次の反復では、配列は array1 と呼ばれ、次に array2 と呼ばれます。これを行う最善の方法は何ですか。

4

4 に答える 4

3

文字通りあなたの質問に答えるには:

$arrayName = 'array' . $i;
$$arrayName = array();
$$arrayName[] = ...

ただし、本当に必要なのは多次元配列です。

$array[$i] = array();
$array[$i][] = ...;
于 2012-04-12T00:07:06.053 に答える
0

variable variablesを使用したい場合、二重のドル記号は、変数の名前が変数から取得されたことを示します。

$varname = "array";
for ($i =0;$i<4;$i++){
    $newvarname = $varname . $i
    $$newvarname = new array()
    push stuff into array;
}

これらの場合、より簡単な解決策は、多くの場合、目的の変数名がインデックスである配列を使用することです。$array1したがって、 、 などを作成する代わりに、次の$array2ようになります。

$arrays = array (
    'array1' => array(stuff),
    'array2' => array(stuff),
    'array3' => array(stuff),
    'array4' => array(stuff)
}

少なくとも、追跡する方が簡単だと思います。

于 2012-04-12T00:05:58.090 に答える
0

変数変数の $$ 表記を使用して配列を参照できるはずです (参照: http://www.php.net/manual/en/language.variables.variable.php )。

したがって、次のようなものが動作するはずです (未テスト):

for ($i =0;$i<4;$i++){

  $thisArrayName = 'array'.$i;
  $$thisArrayName = array();

  push stuff into array;

}
于 2012-04-12T00:09:03.850 に答える
0

配列の配列が必要です

for ($i =0;$i<4;$i++){

   $array[$i] = array();

    push stuff into array;
}
于 2012-04-12T00:11:00.160 に答える