При переборе цикла я использовал оператор модуля в 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. прямо сейчас.
Ваш код специально запрашивает числа, которые делятся на 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";
}
}
$iterator = 0;
$step = 3;
while($iterator < count($collection))
{
echo $collection[$iterator]
$iterator += $step
}