for ループの番号に応じて値が格納されるように、名前を変更したい配列があります。このようなことを試しましたが、エラーが発生しました。
for ($i =0;$i<4;$i++){
$array.$i = array();
push stuff into array;
}
したがって、次の反復では、配列は array1 と呼ばれ、次に array2 と呼ばれます。これを行う最善の方法は何ですか。
for ループの番号に応じて値が格納されるように、名前を変更したい配列があります。このようなことを試しましたが、エラーが発生しました。
for ($i =0;$i<4;$i++){
$array.$i = array();
push stuff into array;
}
したがって、次の反復では、配列は array1 と呼ばれ、次に array2 と呼ばれます。これを行う最善の方法は何ですか。
文字通りあなたの質問に答えるには:
$arrayName = 'array' . $i;
$$arrayName = array();
$$arrayName[] = ...
ただし、本当に必要なのは多次元配列です。
$array[$i] = array();
$array[$i][] = ...;
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)
}
少なくとも、追跡する方が簡単だと思います。
変数変数の $$ 表記を使用して配列を参照できるはずです (参照: 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;
}
配列の配列が必要です
for ($i =0;$i<4;$i++){
$array[$i] = array();
push stuff into array;
}