2011-01-24 87 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;