1

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

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

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

4

6 回答 6

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)

于 2012-10-01T22:47:13.597 回答
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;
    }
}
于 2012-10-01T22:50:36.057 回答
0
$foundValues = 0;

while($foundValues < 20)
{
   //Do your magic here
}
于 2012-10-01T22:45:19.460 回答
0

这将起作用。请注意,如果您的计数从未超过 19,则循环将永远运行。

$count = 0;
while ($count < 20) 
{
    if (whatever)
    {
        $count++;
    }
}
于 2012-10-01T22:45:20.003 回答
0
$count = 0;
while(true){
if($count>20)
    break;
...
}
于 2012-10-01T22:45:47.933 回答
0

当某些条件为真时,只需跳出循环。

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

   if ($i == 10) break;
}
于 2012-10-02T19:15:05.973 回答