3v4l.org

run code in 300+ PHP versions simultaneously
<?php function spiralmatrix($arr) { return $arr ? array_merge( array_shift($arr), spiralmatrix(array_reverse(transpose($arr))) ) : $arr; } function transpose($arr) { return $arr ? @!$arr[1] ? array_chunk($arr[0], 1) : array_map(null, ...$arr) : $arr; } print_r(spiralmatrix([])); print_r(spiralmatrix([[1]])); print_r(spiralmatrix([[1,2],[4,3]])); print_r(spiralmatrix([[1,2,3],[8,9,4],[7,6,5]])); print_r(spiralmatrix([[1,2,3,4],[12,13,14,5],[11,16,15,6],[10,9,8,7]])); print_r(spiralmatrix([[1,2,3,4],[10,11,12,5],[9,8,7,6]]));

preferences:
32.48 ms | 410 KiB | 5 Q