• ベストアンサー

for文を使った配列の処理について

for文を用いてそれぞれの$i時に別の名前で配列をつくり、共通の処理をするCGIを作ろうとしています。 for($i=1;$i<3;++$i){ @HAIRETSU = "@HAIRETSU$i"; #@HAIRETSUの処理# } のようなソースを用いて@HAIRETSU1、@HAIRETSU2を定義し、それぞれ共通の処理をすることを考えましたが、うまくいきません。何か良い方法はあるでしょうか?

  • egypt
  • お礼率87% (175/199)
  • CGI
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

よくわからないけど、 おやりになりたいのは、こういうこと? for($i=1;$i<3;++$i){  @{"Hairetsu".$i}=(123,456,789); } print "$Hairetsu1[0]\n"; print "$Hairetsu2[0]";

egypt
質問者

お礼

ありがとうございます。 解決しました。

関連するQ&A

  • for文を簡単な処理に書き変えたい

    いま、配列を作る作業をしているのですが、for文を使うと、forをいくつ書けば良いのか分からない状態です。 作ろうとしている配列が、A[X][Y]で、Xの要素数は固定で良いのですが、Yの要素数が実験のたびに変動するためです。そして、処理したいのが、この配列の各列の値を適当な値(このfor文の前に値が決まっています)を代入することです。 例えば、for文だと、Y=3のときには for(i=0;i<○;i++){ for(j=0;j<○;j++){ for(k=0;k<○;k++){ A[line][0] = C[i];//(Cという配列のi成分) A[line][1] = B[j]; A[line][2] = E[k]; } } } のように書くような内容なのですが、Yが増えると、for文も増やさないといけません。 ここで、再帰処理のような方法をつかってうまく書きたいのですが、どう書いたら良いのか分かりません。 一般的なfor文の書き換え方みたいなことでも良いので、教えて頂けませんか?宜しくお願いします。

  • phpのfor文の中で配列を作りたいです。

    $a = array(); $a[0]="あ"; $a[1]=""; $a[2]="い"; $a[3]=""; $a[4]=""; $a[5]="う"; のような配列がありfor文の中で文字列が一文字以上だったら配列$bに入れるということをしたいのですが、 $b=array(); for($i=0; $i<count($a); $i++){ $c = mb_strlen($a[$i]); if($c>=1){ $b = $a[$i]; } } var_dump($b); とすると$bには最後の”う”しか入りません。 $bを $b[0]="あ"; $b[1]="い"; $b[2]="う"; とするようにするにはどうしたらいいですか?

    • ベストアンサー
    • PHP
  • 配列の定義について

    配列とは、同じ形式のデーターを連続した記憶領域で確保するためのものである。 配列を構成する個々の領域を要素と呼び、要素の位置を添え字で示す。 Javaでは配列の先頭の要素を(0)番目と呼ぶ。 今、hairetsuという名前で10個の整数からなる配列を定義したい。 この場合の配列は(0)番目から始まり、終端は(9)番目である。 これを定義するには (int[] hairetsu;) (hairetsu = new int[10];) のように2行で行う方法と、 (int[] hairetsu = (new int[10];) のように、一行で行う方法がある。 Javaでは定義済みの配列の要素数は、配列変数名.(length)で知ることができ、 終端は(length + 1)番目となる。 したがって(length + 1)番目以降を使おうとすると、 配列要素の範囲外で(例外)が発生する。 この文章の( )の中は間違っていますか?

    • ベストアンサー
    • Java
  • for文で配列を引数として

    こんばんは。 for文で配列a[i][j]を引数として何らかの関数を呼び出すときがうまく動かないって事が起きてます。その関数にa[0][3]のように指定して動かすとうまく動くのですが・・・。 どうしてなのか分かりますか? for(i=0;i<=5;i++){ for(j=0;j<=6;j++){ ここで関数呼び出し; } } 抽象的な質問ですみません。

  • 多次元配列とfor文について

    javascriptの配列について質問です。 例えば: var arrXXX = new Array(); function samplefunc{ //3次元配列の種類の作成 for (m = 0; m < aaa.length ; m++) { //連想配列作成 arrXXX .push(aaa[m]); } for (j = 0; j < bbb.length; j++) { for (i = 0; i < ccc.length; i++) { arrXXX[aaa[j]] = new Array(ccc.length); arrXXX[aaa[j]][i] = new Array(ccc.length); for (k = 0; k < ddd.length; k++) { arrXXX[aaa[j]][i][k] = eee;     ここでは配列を適切に使える・・・ } } } ここでarrXXXを使いたいが、3次元配列でなくなっている?!  arrXXX[~][0][0]はnullまたはオブジェクトではありません・・・がでます。 } 結局、for文を完全にでてしまうと、せっかくつくった配列がダメになってしまいます。どうすればfor文外で配列を使用できるのか教えてください!

  • シェルスクリプト中で、ヒアドキュメントで書いた内容を配列に格納したい

    SQL文を実行するシェルスクリプトを作っています。 HAIRETSUにSQLファイル名を格納して、forループで実行させているのですが、現在は下記のようにSQLファイル名を横に並べて書いています。 ------------------------------------------- #!/bin/bash HAIRETSU=( test1.sql test2.sql ) for YOUSO in "${HAIRETSU[@]}" ; do psql testdb1 -f $YOUSO done -------------------------------------------- SQLファイルの数は実際にはもっと多いので、一行につき1ファイルだけ名前を書くようにしたいのです。ヒアドキュメントを使って後述のような方法も試みたのですが、この方法ですと配列が作成されません。 配列を別の処理でも使用したいので、ヒアドキュメントの内容を何とか配列に格納したいのですが、よい方法はないでしょうか? -------------------------------------------- for LINE in `cat << EOF test1.sql test2.sql EOF` do psql testdb1 -f $LINE done

  • 特殊なfor文について

    SJC-P 問題集 問13の疑問より for文について教えてください。 一般的なfor文だと次の形だと思うのですが for(int i = 0; i < 5; i ++){ //5回ループする } Animal [] animals = { new Animal(), new Cow() }; for( Animal a : オブジェクト配列animals ){ a.saySomething(); } のような場合、このfor文は 「オブジェクト配列の中にanimalsがあるまでの間、ループする」という意味を指しているのでしょうか? for( クラス名 オブジェクト名 : オブジェクト配列) の一文にある「:」← の役割は何なのでしょうか?

    • ベストアンサー
    • Java
  • For文と配列

    下のFor文でセルに0から9999の数字を入力しようとしたのですが 「forで指定された変数は既に使用されています」というエラーがでます。 Dim i As Integer Dim Num(3) As Integer For Num(0) = 0 To 9 For Num(1) = 0 To 9 For Num(2) = 0 To 9 For Num(3) = 0 To 9 Cells(i, 1) = Num(3) + Num(2) * 10 + Num(1) * 100 + Num(0) * 1000 i = i + 1 Next Num(3) Next Num(2) Next Num(1) Next Num(0) 他には何にも書いていないマクロなので他所で使用しているとも思えないですが うまくゆきません。 続きの作業でNum()を配列として作業したいのでこの形を変えたくありません。 何がいけないのでしょう?

  • 【C#】配列名の異なる同じ処理

    お世話になっております。 Unity 4.0 C#で開発を行っているのですが、 以下の比較する配列名が違うだけの 処理1と処理2を1つにできず悩んでいます。 unsafeを使用するとポインタを使えるようなのですが、 推奨されていない機能なので別の方法を探しています。 配列Aと配列Bは基底クラスが全く一緒なので、 基底クラスにデータセット処理を作って無駄な処理を無くしたいです。 こんなページを見てみたら? このキーワードで検索してみろでも 良いのでご教授下さい。 ●処理1  for(i = 0; i < Max;i++)  {   if(readArray[0] ==     配列A[i].id.ToString())    {     chkFlg = true;    }  } ●処理2  for(i = 0; i < Max;i++)  {   if(readArray[0] ==     配列B[i].id.ToString())   {    chkFlg = true;   }  } 以上、よろしくお願いします。

  • PHPでのFOR文について

    こんにちは質問させていただきます。 ------------------------------------ for ($i = 1;$i<100;$i++) { if ($i < 10) { ※break; } echo($i); } ----------------------------------- 上記のようなFor文で$iが10より小さい場合、 次の$iに焦点をあわせたいのですが、 breakではなくてnext(?)みたいなのはありますか? 結果としては10~99までを表示したいと考えています。 別の文でかくことができるのはわかりますが、 next(?)みたいなものはないかとおもいまして・・・ 宜しくお願いいたします。

    • ベストアンサー
    • PHP