Стоит задача реализовать последовательность чисел по условию 2 через 2, то есть числа должны идти в таком порядке: 0, 1, 4, 5, 8, 9, 12, 13, 16, 17… Для реализации массива в цикле используем увеличение на 4 и деление по модулю на 4
$arr = []; for ($i = 0; $i < 20; $i = $i + 4) { if (!($i%4)) { $arr[] = $i; $arr[] = $i + 1; } } print_r($arr);
Получаем массив:
Array ( [0] => 0 [1] => 1 [2] => 4 [3] => 5 [4] => 8 [5] => 9 [6] => 12 [7] => 13 [8] => 16 [9] => 17 )
Для определения любого числа из данной последовательности используем рекурсию
function detectNum($n) { if ($n <= 0) { return in_array($n, [0, -3]); } $offset = $offset - 4; return detectNum($n); }