【发布时间】:2016-03-18 16:10:06
【问题描述】:
我需要通过它们的位置来识别数组中的一些对象,我正在努力解决逻辑问题。我正在寻找 PHP 等效的 nth-child(5n + 1) 作为条件,从而导致对象位于循环内的位置 0, 5, 10, et al.。
从逻辑上讲,除以 5 并查找整数可能是最简单的,例如0/5 = 0 pass, 1/5 = .2 fail, 5/5 = 1 pass.
如果
for ($i = 0; $i < $total; $i++) {
// obviously this doesn't work because it's nonsense :)
$rhythm = preg_match(/^(\d+){N % 5 == 0}/, $i)
if ($rhythm) {
// is 0, 5, 10,
// etc
} else {
// 1, 2, 3, 4,
// 6, 7, 8, 9,
// etc
}
【问题讨论】:
-
为什么是正则表达式?如果
$i是一个数字,你就不能说if($i % 5 === 0)吗? -
当然,尝试使用正则表达式进行数学运算是无稽之谈。
-
你考虑过
for ($i = 0; $i < $total; $i += 5)吗? -
@Jorg 将其放入答案中,以便我接受。不敢相信我没想到。太棒了。
-
@TomasoAlbinoni 是的,考虑过但我需要操纵所有对象,无论它们是否匹配。最好在循环本身内分开。