2011-01-24 185 views
1

我使用代碼從函數中返回數據並顯示它。意外的輸出

考慮:i = j = 0; count = 4;

我不從代碼..。其中,預計產量獲得4返回值。

,但我得到的結果,當我更換for循環與print_r($EODRow);

請幫助。

$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 2011-01-24 15:23:33

+1

不要在for循環之外聲明循環變量`$ i`和`$ j`。在for循環中聲明它們,例如`for($ i = 0; $ i <$ count; $ i ++)`。 – 2011-01-24 15:30:51

回答

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 2011-01-24 15:25:19

+2

然後我可以看到這是一個未來的問題,你可能會遇到 – Psytronic 2011-01-24 15:28:20

4

你可能有內循環之前重置$ J背面爲0,因爲這將外環

1

嘗試的第一次運行後不輸出任何東西當$ i步驟發生時將$ j重設爲零

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

{ $j == 0;