- print_r: documentation ( source)
- usort: documentation ( source)
<?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);