<?php function f($a){if(!$a)return[];$r=$a[0];$l=count($r);$x=$l-1;$y=$i=0;$s=[[0,1],[-1,0],[0,-1],[1,0]];for(;$l>0;$l-=$i++%2)for($j=$l-1;$j>0;$j--){$x+=$s[$i%4][0];$y+=$s[$i%4][1];$r[]=$a[$y][$x];}return$r;} print_r(f([]));print_r(f([[1]]));print_r(f([[1,2],[4,3]]));print_r(f([[1,2,3],[8,9,4],[7,6,5]]));print_r(f([[1,2,3,4],[12,13,14,5],[11,16,15,6],[10,9,8,7]]));
Standard input is empty
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 )
The brand new service which powers Ideone!
Widget for compiling and running the source code in a web browser!