3v4l.org

run code in 300+ PHP versions simultaneously
<?php function array_make_square(array &$array, $fill = ' ') { $pad = count(array_keys($array)); foreach ($array as &$row) { $row = array_pad($row, $pad, $fill); } } function array_organize(array &$outer) { $offset = 0; foreach ($outer as &$inner) { sort($inner); array_rotate($inner, $offset++); } } function array_rotate(array &$array, $offset) { foreach (array_slice($array, 0, $offset, true) as $key => $val) { unset($array[$key]); $array[$key] = $val; } } function solve($test) { array_make_square($test); array_organize($test); return $test; } function display($outer) { echo "[\n"; foreach ($outer as $row => $inner) { echo " $row => ['" . implode("', '", $inner) . "']\n"; } echo "]\n"; } $tests = [ [ ['X'], ['X'], ['X'] ], [ ['X', 'Y'], ['X', 'Y'], ['X', 'Y'] ], [ ['X', 'Y', 'Z'], ['X', 'Y', 'Z'], ['X', 'Y', 'Z'] ], ]; array_map('display', array_map('solve', $tests));
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
[ 0 => [' ', ' ', 'X'] 1 => [' ', 'X', ' '] 2 => ['X', ' ', ' '] ] [ 0 => [' ', 'X', 'Y'] 1 => ['X', 'Y', ' '] 2 => ['Y', ' ', 'X'] ] [ 0 => ['X', 'Y', 'Z'] 1 => ['Y', 'Z', 'X'] 2 => ['Z', 'X', 'Y'] ]
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 [ 0 => [' ', ' ', 'X'] 1 => [' ', 'X', ' '] 2 => ['X', ' ', ' '] ] [ 0 => [' ', 'X', 'Y'] 1 => ['X', 'Y', ' '] 2 => ['Y', ' ', 'X'] ] [ 0 => ['X', 'Y', 'Z'] 1 => ['Y', 'Z', 'X'] 2 => ['Z', 'X', 'Y'] ]

preferences:
191.13 ms | 402 KiB | 291 Q