PHP循环只有9次而不是〜45次?

时间:2009-12-05 02:28:11

标签: php

这是我的代码:

for($i=0; $i < count($badLinkHolder); $i++)
    {
        if($badLinkHolder[$i][0] != "")
        {
            echo "<tr><td>{$i}</td><td>{$badLinkHolder[$i][0]}</td><td>{$badLinkHolder[$i][1]}</td></tr>";
        }
    }

现在,$badLinkHolder有大约45个条目,我可以使用print_r()进行确认。出于某种原因,这个循环只进行了9次,我无法从数组中检索出所有数据。

对此有何帮助?我完全不知所措。

3 个答案:

答案 0 :(得分:2)

你的循环看起来很好。但是我不确定数组的内容,我建议你先尝试删除if语句并用一些虚拟文本替换它。例如:

for($i = 0; $i < count($badLinkHolder); $i++)
{
  echo "test $i";
}

这样,你可以确保你正在通过循环正确的次数,并且循环内的代码不是错误。你有没有回复count的返回值($ badLinkHolder)?

答案 1 :(得分:2)

首先,你怎么知道它只会发生9次?我的猜测是你在表中只看到了9行,因此假设你的循环只有9次。您有if声明,声明如果($badLinkHolder[$i][0] != ""),则只会打印出该行。

除此之外,foreach优于for在PHP中循环数组。

$i = 0;
foreach($badLinkHolder as $holder)
{
    if($holder[0] != "")
    {
        echo "<tr><td>{$i}</td><td>{$holder[0]}</td><td>{$holder[1]}</td></tr>";
    }
    $i++;
}

答案 2 :(得分:0)

哦,大卫,我是个白痴。我在查看$ badLinkHolder的条目之前,它经历了一些没有正常工作的函数,并用大量的空值填充它。

问题解决了。