如果我有一定数量的结果,我怎么能循环运行?

时间:2012-10-01 22:42:46

标签: php

在PHP中:我有一个for循环运行数组,如果每个键的值与我正在寻找的值不匹配,我跳过它。

如何创建一个循环,直到找到我正在寻找的20个值。所以我不能认为它是for($i=0;$i<50;$i++),因为前50个,可能只有2个匹配的值。所以它需要运行到20场比赛。

更新:我还需要遍历数组,所以我仍然需要检查这样的每个值:$ news_posts [$ i] ['category'];如果类别是我正在寻找的那么那就是1.如果不是,那么我跳过它。我需要20。

6 个答案:

答案 0 :(得分:4)

您可以使用多个条件:

for ($i=0, $found=0; $i<count($news_posts) && $found<20; ++$i)
{
    if ($news_posts[$i]['category'] == 'something')
    {
        ++$found;
        // do the rest of your stuff
    }
}

这会循环遍历$news_posts中的所有内容,但如果找到20,则会提前停止。

for循环有三个部分(initialization; condition; increment)。您可以在其中任何一个中包含多个语句(或不包含任何语句)。例如,for (;;)相当于while (true)

答案 1 :(得分:0)

$foundValues = 0;

while($foundValues < 20)
{
   //Do your magic here
}

答案 2 :(得分:0)

这会奏效。要小心,如果你的计数永远不会高于19,那么循环就会永远运行。

$count = 0;
while ($count < 20) 
{
    if (whatever)
    {
        $count++;
    }
}

答案 3 :(得分:0)

$count = 0;
while(true){
if($count>20)
    break;
...
}

答案 4 :(得分:0)

$count = 0;
$RESULT_COUNT = 20;
while($count < $RESULT_COUNT) {
    // your code to determine if result is found

    if($resultFound) {
        $count++;
    }

    if($resultsEnd) { // check here to see if you have any more values to search through
        break;
    }
}

答案 5 :(得分:0)

当某些条件成立时,简单地摆脱循环。

for ($i = 0; $i < $countValue; $i++)
{
   //do something

   if ($i == 10) break;
}