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));

preferences:
59.48 ms | 402 KiB | 5 Q