从PHP循环中打印值

时间:2012-11-27 05:48:38

标签: php

下面是我的代码中的循环。一旦起始值和结束值为零,循环就会打印一个值零(0)。但我需要做的是当起始值和结束值为零时,它应该什么都不打印。有人可以告诉我如何改变方法吗?

while ($recQ = mysqli_fetch_array($runx))
{
   for($ii=$recQ['start']; $ii<=$recQ['end']; $ii++)
    {
        if (!in_array($ii, $exclude))
        {
            echo $ii.", ";
        }
    }
}   

3 个答案:

答案 0 :(得分:1)

然后,使用empty()函数添加对值的附加检查:

while ($recQ = mysqli_fetch_array($runx))
{
   for($ii=$recQ['start']; $ii<=$recQ['end']; $ii++)
    {
        if (!in_array($ii, $exclude))
        {
            if (!empty($ii)) echo $ii.", ";
        }
    }
}   

答案 1 :(得分:0)

您可以在主循环中使用continue;跳过内循环的执行:

while ($recQ = mysqli_fetch_array($runx))
{
   if ($recQ['start'] == 0 && $recQ['end'] == 0) {
       continue; // skip the rest of the code inside this loop
   }
   for($ii=$recQ['start']; $ii<=$recQ['end']; $ii++)

答案 2 :(得分:0)

您可以尝试一些不同的方法:

$resulting_set = array();

while( $recQ = mysqli_fetch_array($runx) ){

    $my_set = range( $recQ['start'], $recQ['end'] );

    $resulting_set = array_merge( 
        $resulting_set,
        array_diff( $my_set, $exclude )
    );

}

echo implode( ', ', $resulting_set);

代码更容易阅读,结果不会有您从版本中获得的逗号+空格(假设您出于某种原因不需要它)。

这也更容易重构,因为你可以操作包含输出的数组比动态输出容易得多。

要从值中删除0,您只需在$ exclude数组中添加0即可。