1

PHP: 配列を介して実行される for ループがあり、各キーの値が探している値と一致しない場合はスキップします。

探している値が 20 個見つかるまで実行されるループを作成するにはどうすればよいですか。したがって、最初の 50 が原因であるとは言えませんfor($i=0;$i<50;$i++)。一致する値は 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 ループには 3 つの部分があり(initialization; condition; increment)ます。それらのいずれにも複数のステートメントを含めることができます (またはまったく含めないこともできます)。たとえば、for (;;)は と同等while (true)です。

于 2012-10-01T22:47:13.597 に答える
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 に答える
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 に答える