Используя цикл for
и range
с array_reverse
:
https://3v4l.org/7QMGl
<?php
$number = 25;
$columnCount = 4;
for($i = 1, $loopCounter = 1; $i <= $number; $i = $i + $columnCount, $loopCounter++) {
$range = range($i, $i+$columnCount - 1);
if($loopCounter % 2 === 0) {
$range = array_reverse($range);
}
foreach($range as $n) {
echo str_pad($n, 2, ' ', STR_PAD_LEFT) . " ";
}
echo "\n";
}
Мы увеличиваем $i
на $columnCount
на каждой итерациипоэтому мы всегда можем сгенерировать массив из диапазона чисел, которые должны быть выведены в этой строке.Это делает его очень простым и понятным, если нам нужно обратить номера строк в обратном порядке.
str_pad
помогает нам поддерживать правильный интервал, например, для однозначных чисел
Примечание: вывозможно, придется поменять echo "\n";
на echo "<br>";
, если вы просматриваете вывод в браузере.