【问题标题】:How to use % (modulus) in PHP to pick out every 1st, 2nd and 3rd result?如何在 PHP 中使用 % (模数)来挑选每一个第一个、第二个和第三个结果?
【发布时间】:2012-06-22 22:26:43
【问题描述】:

我正在使用 PHP while 循环从数据库中获取数据。忽略我从数据库中检索的数据并专注于我获取的记录数量,即 4。

我希望能够获取第一条记录并将其插入名为“div1”的 div 中,并获取第二条记录并将其插入名为“div2”的 div 中,获取第三条记录并将其插入名为“div3”。

当涉及到第 4 条记录时,我想将它插入到名为“div1”的 div 中,依此类推。

我已经设法获得了每第三个结果,因此跳过了第一和第二条记录,并能够使用下面代码中的 sn-p 来处理第三条记录:

if ($i % 3 < 2) {

我无法适应它来做我想做的事情。

【问题讨论】:

    标签: php mysql modulus


    【解决方案1】:

    你想要的是一些变化

    $targetDivNumber = ($i % 3) + 1;
    

    See it in action.

    【讨论】:

    • 应该在while循环中使用i++吗?
    • 这是当前可用的 PHP 代码。我遗漏了函数的代码。 $i = 0; while($allmodules = mysql_fetch_array($modules)) { if ($i % 3 &lt; 2) { $divcode = '&lt;div class="module-row1"&gt;'; } else { $divcode = '&lt;div class="module-row2"&gt;'; } echo "" . $divcode . ""; $i++; ?&gt;
    • @Ben 编辑你的答案,不要在 cmets 中发布代码,它看起来不太好。
    • @Ben:看起来还可以,但你想要$divCode = '&lt;div class="module-row$targetDivNumber"&gt;';
    【解决方案2】:

    尝试类似(伪代码)

    if ($i % 3 = 0) {put in div1}
    if ($i % 3 = 1) {put in div2}
    if ($i % 3 = 2) {put in div3}
    

    【讨论】:

    • 应该在while循环中使用i++吗?
    • @Ben:如果你不使用 i++ 或类似的东西,我在循环的每次迭代中都会有相同的值,这没有多大意义。所以,是的,你需要 i++。
    【解决方案3】:

    使用下面的代码你也可以这样做:

    $cont = 1;
    
    while( fetch results from query )
    {
         if($cont == 1)
             put in div 1;
         else if($cont == 2)
             put in div 2;
         else if($cont == 3)
             put in div3;
    
         $cont = $cont <= 3 ? $cont += 1 : 1;
    }
    

    【讨论】:

      猜你喜欢
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      • 2014-08-16
      • 1970-01-01
      • 2019-09-06
      • 1970-01-01
      相关资源
      最近更新 更多