下面是我的代码中的循环。一旦起始值和结束值为零,循环就会打印一个值零(0)。但我需要做的是当起始值和结束值为零时,它应该什么都不打印。有人可以告诉我如何改变方法吗?
while ($recQ = mysqli_fetch_array($runx))
{
for($ii=$recQ['start']; $ii<=$recQ['end']; $ii++)
{
if (!in_array($ii, $exclude))
{
echo $ii.", ";
}
}
}
答案 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即可。