Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function matrix($n)
- {
- $result = [];
- for ($i = 0; $i < $n; $i++) {
- array_push($result, range(0, $n - 1));
- }
- $start_row = 0;
- $end_row = $n - 1;
- $start_column = 0;
- $end_column = $n - 1;
- $counter = 1;
- while ($start_row <= $end_row && $start_column <= $end_column) {
- for ($i = $start_column; $i <= $end_column; $i++) {
- $result[$start_row][$i] = $counter;
- $counter++;
- }
- $start_row++;
- for ($i = $start_row; $i <= $end_row; $i++) {
- $result[$i][$end_column] = $counter;
- $counter++;
- }
- $end_column--;
- for ($i = $end_column; $i >= $start_column; $i--) {
- $result[$end_row][$i] = $counter;
- $counter++;
- }
- $end_row--;
- for ($i = $end_row; $i >= $start_row; $i--) {
- $result[$i][$start_column] = $counter;
- $counter++;
- }
- $start_column++;
- }
- return $result;
- }
- // [[1, 2, 3, 4],
- // [12, 13, 14, 5],
- // [11, 16, 15, 6],
- // [10, 9, 8, 7]];
- foreach (matrix(3) as $row) {
- echo join(', ', $row);
- echo "<br>";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement