циклы — Получение nth-потомка со смещением в PHP с модулем

При переборе цикла я использовал оператор модуля в if заявление, чтобы получить nth Результаты довольно легко, как это:

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

Как вы получаете 5-й предмет в серии со смещением 3 (то есть 3,8,13,18,23 и т. Д.)?

Я видел несколько методов, но я ищу канонический ответ, и я действительно не вижу один на S.O. прямо сейчас.

0

Решение

Ваш код специально запрашивает числа, которые делятся на 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";
}
}
2

Другие решения

$iterator = 0;
$step = 3;

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

По вопросам рекламы [email protected]