- ベストアンサー
配列をループでたくさん宣言したいのですが、配列名や変数名を変数で宣言することはできませんか?
お世話になっております。 タイトル通りの質問です。 日付がファイル名になっているCSVファイルが複数あるのですが、 それをそのまま「array20071020」などという名前の配列に、それぞれ入れて行きたいと思います。ループ処理でなければ出来ないと思うのですが、ループ処理内で配列を宣言していく方法はあるでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- ki-ton
- ベストアンサー率50% (3/6)
関連するQ&A
- 配列を使わずに、変数名を動的にループで回したい
配列を使わずに、変数名を動的にループで回したい 大学の課題をやっている途中に思ったことなのですが……。 プログラム中に同じ型の変数p1,p2,p3があり、それぞれの変数にループで同じ処理を施したいと思っています。 しかし、「p(i)」や「("p" + i)」などと、変数どうしを別のものとして認識させようとしても、コンパイラから警告が出て上手くいきません。 配列を使えば、このような処理が出来ることはわかるのですが、使う変数名を指定されてしまっているために、今回は配列を使えません。 出来るか出来ないか、出来る場合は方法を知りたいです。 後、今回はC言語のプログラムで利用出来るかが自分にとっての問題なのですが、C言語以外のこのプログラミング言語なら出来る、とかの情報もこの機会に知りたいです。 お答え出来る範囲でいいので、もしよければ回答お願いします。
- ベストアンサー
- C・C++・C#
- 配列の宣言のときに数字を指定しないと?
配列の宣言の時に、例えば、 xx = new Array(3); のように3を指定しないで xx = new Array(); とすると、どういう処理になるのでしょうか? よろしくお願いします。
- ベストアンサー
- JavaScript
- 変数名を配列として利用するには?
複数のモジュールに記述されている配列を1つの配列へ代入したいと思っています。 単純に考えれば、 @array = (@Module1::array, @Module2::array, @Module3::array); で良いのですが、モジュールが多岐に渡っており、モジュール名自体はスカラー変数へ代入して置き、それを利用したいと考えています。 @array = (); foreach $m (qw(Module1 Module2 Module3)) { $mn = $m. '::array'; foreach $w (@{$mn}) { # @Module1::array にアクセスしているつもり push(@array, $w); } } この様なイメージです。 しかし、@{$mn}は Can't use string ("変数名") as an ARRAY ref while "strict refs" in use at 行番号. になってしまいます。 スカラー文字列に入っている配列変数へアクセスするにはどう記述すれば良いでしょうか?
- ベストアンサー
- Perl
- ループで配列に格納する
初歩的な質問かもしれないですが、よろしくお願いします。 $servers=array( array( 'server' => 'http://ping.rss.drecom.jp', 'path' => '/',), array( 'server' => 'http://ping.blogmura.com', 'path' => '/xmlrpc/4u9lifgg3xx', ), array( 'server' => 'http://blog.goo.ne.jp', 'path' => '/XMLRPC', ), array( 'server' => 'http://blogsearch.google.co.jp', 'path' => '/ping/RPC2', ),); とあります。 これをループで$serversに入れる方法を教えてください。 また、arrayは不特定複数です。 .iniから読み込んで配列に格納する予定です。
- ベストアンサー
- PHP
- JavaScript で配列の終わりまでループ
JavaScript で配列の終わりまでループを回すには どうしたらいいのでしょう? perl であれば foreach (@test) { 処理 } ですよね。。。test.length; で要素数を取得する以外で 方法はないでしょうか。 new Array を使って、2次元配列(のようなもの) を 作って格納してしまったので、test[0][*], test[1][*] それぞれの要素数を調べたいのです。 現状だと test[0][*], test[1][*] 2つの合計値が 返ってしまいます。
- ベストアンサー
- JavaScript
- 配列を宣言した際メモリ内の様子
「配列」を宣言した際、メモリ内では何が起きているのでしょうか? 配列宣言した際にメモリ内にて、複数のデータを格納する為に、メモリー領域がまとめて確保され、その確保した領域に名前が付けられるのでしょうか? 分かりやすく教えてください。 よろしくお願いします。
- 締切済み
- その他([技術者向] コンピューター)
- 変数名(配列)の中の変数
配列変数の名前の中に変数を入れたい場合、どのように記述すればいいのでしょうか? use strictを用いて、以下のように書いてみましたが、エラーが出て上手く動きません。 ループ x: 1-3 ループ y: 1-2 ${"answer$x"[$y]}=入力値 ←この部分を教えてください。 ループ閉 y ループ閉 x -------------------- answer1[1] answer1[2] answer2[1] answer2[2] answer3[1] answer3[2] とループを通るように、変数名を設定したいのですが、 エラーが出て実行ができません。 エラー:Can't use string ("answer1") as an ARRAY ref while "strict refs" in use at~ -------------------- 実際のプログラムは以下のように書いています。(該当部分のみ) for(my $x=1; $x<$num; $x++) { for (my $y=0; $y<$n; $y++) { my $y = ($x*$n)+$d; my @line = split(/\r/, $data[$y]); my @line0 = split(/\t/, $line[0]); ${"answer$x"[$y]} = $line0[0]; } } よろしくお願いします。
- 締切済み
- Perl
お礼
ご返信遅れましてすみません。 Collectionをの使い方を勉強して、無事希望通りのことができました。 配列ではなくDataTableを使いましたが、 教えて頂いたようにそれぞれのCSV内のデータをDataTableに入れる関数をつくり、キーを変数で指定できたのでループ処理でコレクションに追加できました。 どうもありがとうございました<(_ _)>