fork download
  1. <?php
  2.  
  3. function spiralmatrix($arr)
  4. {
  5. return $arr
  6. array_shift($arr),
  7. spiralmatrix(array_reverse(transpose($arr)))
  8. )
  9. : $arr;
  10. }
  11.  
  12. function transpose($arr)
  13. {
  14. return count($arr) > 1 ? array_map(null, ...$arr) : $arr;
  15. }
  16.  
  17. print_r(spiralmatrix([]));
  18. print_r(spiralmatrix([[1]]));
  19. print_r(spiralmatrix([[1,2],[4,3]]));
  20. print_r(spiralmatrix([[1,2,3],[8,9,4],[7,6,5]]));
  21. print_r(spiralmatrix([[1,2,3,4],[12,13,14,5],[11,16,15,6],[10,9,8,7]]));
  22. print_r(spiralmatrix([[1,2,3,4],[10,11,12,5],[9,8,7,6]]));
Success #stdin #stdout 0s 82560KB
stdin
Standard input is empty
stdout
Array
(
)
Array
(
    [0] => 1
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 3
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 9
    [8] => 8
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
    [9] => 10
    [10] => 11
    [11] => 12
    [12] => 13
    [13] => 14
    [14] => 16
    [15] => 15
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
    [9] => 12
    [10] => 11
    [11] => 10
)