使用模数在PHP中获得带有偏移量的nth-child

时间:2015-12-18 19:14:19

标签: php loops modulus

当迭代循环时,我在if语句中使用了模数运算符来非常容易地得到nth结果:

// Get 5th item in series
if ($variable->array_item % 5 == 0) {
  echo $variable->array_item;
}

如何获得偏移量为3的系列中的第5项(即3,8,13,18,23等)?

我已经看过几种方法,但我正在寻找一个规范的答案,我真的不会在S.O.上看到一个。现在。

2 个答案:

答案 0 :(得分:2)

您的代码专门请求可被5整除的数字,而您想要的是数字3,8,13,18,23等。这很容易使用几乎完全相同的代码:

// set up some test data
$testArray = [];

for ($i = 1; $i <= 30; ++$i) {
    $testArray[$i] = "Testing {$i}";
}

// here's where the actual work happens
foreach ($testArray as $key => $value) {
    if ($key % 5 == 3) { // <-- note 3, not 0
        echo "Found $value\n";
    }
}

答案 1 :(得分:1)

$iterator = 0;
$step = 3;

while($iterator < count($collection))
{
 echo $collection[$iterator]
 $iterator += $step
}