在不规则序列中使用 php 模数捕获迭代

Catching iterations using php modulus in an irregular sequence

我如何编写一个模数来 select 按顺序执行以下迭代?

1、4、5、8、9、12、13 等 (+3+1r)

我在一个循环中工作并计算 post 秒(迭代)。

例如,我可以通过以下方式捕获每三分之一 post (1, 4, 7, 10):-

if ($i % 3 == 1) { echo 'something here'; } 

但是我怎样才能写出能够捕获 1、4、5、8、9、12、13 的代码呢?

我不太确定你的算法,但你似乎试图让每第 3 和第 4 post 不是(从 0 开始)。合适的代码是:

if(($i % 4 == 0 || $i % 4 == 1) && $i != 0) { /* do stuff */ }

旁注:如果您对 closed form 公式感到好奇:

以防您需要从序列中选取第 n 项。

否则,如果您在循环中需要它,我建议您使用模数(如@Sebb 建议的那样)。