<?php
function draw_pattern($rows, $cols) {
for ($row = 0; $row < $rows; $row++) {
for ($col = 0; $col < $cols; $col++) {
if ($row % 2 === 0) {
// $row * $cols + 1 gives you first number for that row
// e.g. for row number 2 you get 2 * 4 + 1 = 9
$num = $row * $cols + 1 + $col;
} else {
// ($row + 1) * $cols gives you last number for that row
// e.g. for row number 1 you get (1 + 1) * 4 = 8
$num = ($row + 1) * $cols - $col;
}
}
echo PHP_EOL;
}
}
draw_pattern(3, 4);
echo PHP_EOL;
draw_pattern(4, 5);
echo PHP_EOL;
draw_pattern(5, 6);
PD9waHAKZnVuY3Rpb24gZHJhd19wYXR0ZXJuKCRyb3dzLCAkY29scykgewogICAgZm9yICgkcm93ID0gMDsgJHJvdyA8ICRyb3dzOyAkcm93KyspIHsKICAgICAgICBmb3IgKCRjb2wgPSAwOyAkY29sIDwgJGNvbHM7ICRjb2wrKykgewogICAgICAgICAgICBpZiAoJHJvdyAlIDIgPT09IDApIHsKICAgICAgICAgICAgICAgIC8vICRyb3cgKiAkY29scyArIDEgZ2l2ZXMgeW91IGZpcnN0IG51bWJlciBmb3IgdGhhdCByb3cKICAgICAgICAgICAgICAgIC8vIGUuZy4gZm9yIHJvdyBudW1iZXIgMiB5b3UgZ2V0IDIgKiA0ICsgMSA9IDkKICAgICAgICAgICAgICAgICRudW0gPSAkcm93ICogJGNvbHMgKyAxICsgJGNvbDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vICgkcm93ICsgMSkgKiAkY29scyBnaXZlcyB5b3UgbGFzdCBudW1iZXIgZm9yIHRoYXQgcm93CiAgICAgICAgICAgICAgICAvLyBlLmcuIGZvciByb3cgbnVtYmVyIDEgeW91IGdldCAoMSArIDEpICogNCA9IDgKICAgICAgICAgICAgICAgICRudW0gPSAoJHJvdyArIDEpICogJGNvbHMgLSAkY29sOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVjaG8gc3ByaW50ZignJTJkICcsICRudW0pOwogICAgICAgIH0KICAgICAgICBlY2hvIFBIUF9FT0w7CiAgICB9Cn0KZHJhd19wYXR0ZXJuKDMsIDQpOwplY2hvIFBIUF9FT0w7CmRyYXdfcGF0dGVybig0LCA1KTsKZWNobyBQSFBfRU9MOwpkcmF3X3BhdHRlcm4oNSwgNik7Cg==