Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. <?php
  2.  
  3. function matrix($n)
  4. {
  5. $result = [];
  6.  
  7. for ($i = 0; $i < $n; $i++) {
  8. array_push($result, range(0, $n - 1));
  9. }
  10.  
  11. $start_row = 0;
  12. $end_row = $n - 1;
  13. $start_column = 0;
  14. $end_column = $n - 1;
  15.  
  16. $counter = 1;
  17.  
  18. while ($start_row <= $end_row && $start_column <= $end_column) {
  19. for ($i = $start_column; $i <= $end_column; $i++) {
  20. $result[$start_row][$i] = $counter;
  21. $counter++;
  22. }
  23. $start_row++;
  24.  
  25. for ($i = $start_row; $i <= $end_row; $i++) {
  26. $result[$i][$end_column] = $counter;
  27. $counter++;
  28. }
  29. $end_column--;
  30.  
  31. for ($i = $end_column; $i >= $start_column; $i--) {
  32. $result[$end_row][$i] = $counter;
  33. $counter++;
  34. }
  35. $end_row--;
  36.  
  37. for ($i = $end_row; $i >= $start_row; $i--) {
  38. $result[$i][$start_column] = $counter;
  39. $counter++;
  40. }
  41. $start_column++;
  42. }
  43.  
  44. return $result;
  45. }
  46.  
  47. // [[1, 2, 3, 4],
  48. // [12, 13, 14, 5],
  49. // [11, 16, 15, 6],
  50. // [10, 9, 8, 7]];
  51.  
  52. foreach (matrix(3) as $row) {
  53. echo join(', ', $row);
  54. echo "<br>";
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement