fork(1) download
  1. <?php
  2.  
  3. function crazyArray(array $array): array {
  4. if(empty($array))
  5. return [];
  6.  
  7. $r = $array[0];
  8. $len = count($r);
  9.  
  10. $x = $len-1;
  11. $y = $i = 0;
  12. $step = [[0,1], [-1,0], [0,-1], [1,0]];
  13.  
  14. for (; $len > 0 ; $len -= $i++ % 2) {
  15. for ($j = $len-1; $j > 0; $j--) {
  16. $x += $step[$i%4][0];
  17. $y += $step[$i%4][1];
  18. $r[] = $array[$y][$x];
  19. }
  20. }
  21. return $r;
  22. }
  23.  
  24. print_r(crazyArray([]));
  25. print_r(crazyArray([[1]]));
  26. print_r(crazyArray([[1,2],[4,3]]));
  27. print_r(crazyArray([[1,2,3],[8,9,4],[7,6,5]]));
  28. print_r(crazyArray([[1,2,3,4],[12,13,14,5],[11,16,15,6],[10,9,8,7]]));
Success #stdin #stdout 0s 82560KB
stdin
Standard input is empty
stdout
Array
(
)
Array
(
    [0] => 1
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
)
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] => 15
    [15] => 16
)