foreach循环不限于预期的计数器

时间:2015-02-05 12:17:00

标签: php loops

我通过cURL方法接收数据,而''Feed'($data)包含八个帖子($post)。我需要将一些条件逻辑应用于此Feed(if (!$postTypeExcl)),我只想输出四个帖子。我尝试了以下块,但这不起作用。输出所有帖子,但限制为if (!$postTypeExcl)。所以唯一不起作用的是柜台。

我故意将计数器放在foreach循环之外,这样即使计数器达到最大值,引擎也不会保持循环。

$counter = 0;
if ($counter < 4) {
    foreach ($data as $post) {
        $postTypeExcl = $post->getProperty('story');
        if (!$postTypeExcl) {
            // Output some HTML

            $counter++;
        }
    }
}

2 个答案:

答案 0 :(得分:1)

这是你的代码:

$counter = 0;
if ($counter < 4) {
    // .. do something ...
}

0总是小于4,所以“做某事”就会发生。那就是你的循环。

你要找的是break,退出循环:

foreach ($data as $post) {
    $postTypeExcl = $post->getProperty('story');
    if (!$postTypeExcl) {
        // Output some HTML

        $counter++;
    }
    if ($counter > 4) break;
}

答案 1 :(得分:0)

为什么你的if语句不在循环中?

$counter = 0;

    foreach ($data as $post) {
        if ($counter >=4) break;
        $postTypeExcl = $post->getProperty('story');
        if (!$postTypeExcl) {
            // Output some HTML

            $counter++;
        }
    }

类似的东西。