0

我正在尝试使用循环语句将不确定数量的名称放入变量值中:

while ($row = mysql_fetch_row($resultdq2))
    {
        $name[$i] = $row[2];
        $parent_ID = $row[1];
        $i++;
    }   

然后我尝试使用以下结构回显名称/

$x = 0;
while (isset ($name[$x]))
echo $name[$x];
$x++;

唯一的问题是,第二个循环结构冻结了我的电脑加载,因此我假设它无限循环。

为什么会这样?假设$x$i是相同的值(即 7) 那么$name[$x]name[$i]应该是等价的,这不正确吗?

然后,一旦我$name[$x]在第二个循环中的条件通过了分配的变量点,循环不应该终止吗?

是否有可能对于循环语句条件,它使用全局变量声明$x = 0而不是内部$x值来评估条件是否满足,因此该语句始终为真?

有什么问题,我该如何纠正?

4

2 回答 2

8

也许添加'{'和'}'来增加计数器?

while (isset ($name[$x])) {
  echo $name[$x];
  $x++;
}

更好地使用foreach,添加is_array检查。写好代码!

于 2012-10-23T11:06:19.057 回答
3

只有echo $name[$x];在while循环内。它应该是:

$x = 0;
while (isset ($name[$x]))
{
    echo $name[$x];
    $x++;
}
于 2012-10-23T11:07:57.147 回答