2011-01-24 18 views
1

コードを使用して、関数からデータを返して表示します。予期しない出力

は考える:i = j = 0; count = 4;

私は出力が期待され.whichコード..から4戻り値を得ることはありません。

しかし、私はprint_r($EODRow);

Plsのヘルプでループのために交換するとき、私は結果を得ます。

$i = 0; 

    $j = 0; 

    $count = getEODCount("A"); 

    for(; $i < $count; $i++) 

    { 

      $EODRow = getEOD("A",$i); 

      print "<tr>"; 

      for(; $j < 12; $j++) 

      { 

         print "<td>$EODRow[$j]</td>"; 

      } 

      print "</tr>"; 

} 

私は関数から値の配列を返します。

+0

を読み、それをより簡単にするためにあなたのコードをインデントしてください。 – Spudley

+1

ループ変数 '$ i'と' $ j'をforループの外側に宣言しないでください。 'for($ i = 0; $ i <$ count; $ i ++)'のようにforループでそれらを宣言します。 –

答えて

1

各ループのループ変数をリセットする必要があります。 $iループのたびに$jが0にリセットされていません。あなたは本当にあなたにループを変更する必要があり

for($i = 0; $i < $count; $i++) 

for($j = 0; $j < 12; $j++) 
2

{}を使用して変数をラップ試してみてください、そうprint "<td>{$EODRow[$j]}</td>";

説明:

問題は、コンパイラは文句を言わないあなたはそれが同じ変数の一部だということを特定せずに$ EODRowにインデックスを適用することで、これは{}のことです。 (まあそれはどのように/なぜとにかくの私の理解です)

+0

申し訳ありませんが働いています – ineedhelp

+2

これは将来発生する可能性があることがわかります – Psytronic

4

は、外側のループの最初の実行

+0

これはおそらく問題です。それ以外の場合は、最初の行だけが印刷されます。 – ircmaxell

+1

こんにちは。 – ineedhelp

1

試した後に何も出力しませんので、あなたはおそらく、内部ループの前に戻って0から$ jをリセットする必要があります別の$ iステップが発生したときに$ jをゼロにリセットする

for(; $i < $count; $i++) 

{ $j == 0; 
+1

または単にfor($ j = 0; $ j <12; $ j ++) ' –

+0

はい、それは本当です。私を祝う –