对于循环 - 做一次循环命中某些数字PHP

时间:2014-07-25 20:26:36

标签: php loops for-loop

我正在为房地产网站开展项目。我有一个函数,它使用for循环从数据库中为每个可用属性获取一行数据。通常情况下,这可以很好地工作,但对于此特定站点,属性以三行显示。这意味着一旦我输出了3个属性,我需要关闭当前div并打开另一个div来显示下一行3个属性。所以基本上我需要循环识别一旦它击中三行,回声类似

</div><div class="new div">

然后回到它停止的地方。我的for循环目前看起来像这样:

function showFeaturedHomes() {
    $fetcher = $this->startDataFetch();
    for ($idx = 0; $idx < 30; $idx++)
    {   
        $row = $fetcher->fetch_assoc();
        if (!$row)
            break;
        $retVal .= $this->showBlock($row);
    }
    return ($retVal);

我尝试使用模数运算符(%)来检测一旦它达到3的倍数,并且看起来它似乎有效,它输出结束和打开div之前它还做其他事情,所以我仍然处于同样的境地。

我希望我能够清楚地知道自己要做什么,但如果没有,请随时向我询问更多信息。非常感激您的帮忙!谢谢!

1 个答案:

答案 0 :(得分:1)

function showFeaturedHomes() {
    echo '<div class="new div">'; // !!!
    $fetcher = $this->startDataFetch();
    for ($idx = 0; $idx < 30; $idx++)
    {
        if ($idx != 0 && $idx % 3 == 0) echo '</div><div class="new div">'; // !!!
        $row = $fetcher->fetch_assoc();
        if (!$row)
            break;
        $retVal .= $this->showBlock($row);
    }
    echo '</div>'; // !!!
    return ($retVal);
}

我不知道你是否通过echo返回值以及showBlock做了什么,但这里的想法很清楚:)。你接近模数!最好的问候!