3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [1,2,3,4,5,6,7,8,9]; $expect = [1,4,7,2,5,8,3,6,9]; $a = usort($array, function ($a, $b){ $arow = 3 - $a%3; $brow = 3 - $b%3; $acol = intval($a/3); $bcol = intval($b/3); return $acol == $bcol?($arow - $brow):$acol - $bcol; }); print_r($array);

preferences:
53.18 ms | 402 KiB | 5 Q