有更好,更简单的方法吗?

时间:2012-04-17 13:36:34

标签: php

在PHP中,我正在做一个循环,类似于

    $x = 0;

    for ($i = 0; $i < 100; $i++)
    {
        if ($x == 3)    //better way to do this? in this example, determine every 3 times in a loop
        {
            //"do something"
            $x = 0;
        }

        $x++;

正如你所看到的,我在循环中每3次做一次循环,但问题是,是否有一种更好,更简单的方法来确定它是否有时间在“做某事”循环?

8 个答案:

答案 0 :(得分:5)

您可以使用模数:

if(($i % 3 == 0) && ($i > 0))
{
   ...
}

(不要忘记检查它是否优于0,否则它会在第一次迭代时进入if。

答案 1 :(得分:3)

您可以使用模数运算符%来查看$ i是否可被3整除。这应该让你不能管理$ x

答案 2 :(得分:3)

不要使用$x,只需检查if( $i > 0 && $i % 3 == 0)即可。如果您想在第一次运行时发生某些事情,只需删除$i > 0 &&部分。

答案 3 :(得分:2)

Fizzbuzz嗯?您将需要Modulo运算符 - %

if ((6 % 3) == 0) {
    echo "is divisable by three";
}

答案 4 :(得分:2)

您可以使用modulus operator

来避免使用$ x变量
if ($i % 3 == 0 && i > 0){
    // Do something
}

基本上这实现了相同的逻辑;每三次迭代,循环将运行您的额外代码。

答案 5 :(得分:0)

在$ i上使用模数:

for ($i = 0; $i < 100; $i++)
{
    if($i % 3 == 0)
    {
        // do something
    }
}

答案 6 :(得分:0)

for ($i = 0; $i < 100; $i++) {
    {
        if($i%3==0){
       //Do Something
     }
 }

答案 7 :(得分:0)

在此代码中:

for ($i = 0; $i < 100; $i++)
    {
        if(($i%3==0) && $i>0)
        {
           //Do Something   #first will be after 4 time
        }
    }

但是这一个:

for ($i = 1; $i <=100; $i++)
    {
        if($i%3==0)
        {
           //Do Something   #even first will be after 3 time 
        }
    }