如何在php中增加循环内的迭代次数?

时间:2010-07-19 20:37:16

标签: php loops iteration

我正在研究自定义分页系统并遇到以下问题。当其中一个元素从集合中过滤掉时,最终数组的大小小于所需的大小。因此,我正在寻找一种解决方案,以增加循环内的迭代次数,始终获得由50个元素组成的数组。

$limit = 50; //Number of elements I want to fetch

for($x=0; $x<$limit; $x++){

    if ($elementIsNotFiltered) {
        //add element to $someArray;
    }
    else {
        //increase the number of iterations, so even if some elements are filtered out,
        //the size of $someArray will always be 50 
    }

}

感谢您的帮助。

4 个答案:

答案 0 :(得分:7)

while()循环中执行此操作,并在最终点击break

$limit执行此操作

答案 1 :(得分:2)

else {
    ++$limit;
}

试过了吗?

你也可以反过来做同样的事情:

else {
    --$x;
}

或者更有效:

$x = 0;
while ($x != 50) {
    if ($notFiltered) {
        ++$x;
    }
}

如果您想保存计数器变量,也可以使用:

while (!isset($array[49])) {
}

此处的!isset($array[49])只是count($array) < 50的同义词。

答案 2 :(得分:2)

使用while循环。

while(count($somearray) < 50 && /*elements remain*/) ...

答案 3 :(得分:0)

听起来我觉得你正在寻找一个while循环 - 而不是for循环:

while ($items < 50 && [more items to filter]) {
    if ([add to array]) {
       $items++;
    }
}

如果您真的想在for循环中执行此操作,则可以随时修改$x,但这会使您的代码难以理解且难以维护 - 我建议此...