<?phpclass Solution { /** * 给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。 * (先上下翻转,再关于($matrix[0][0], $matrix[3][3]) 的线对称翻转) * * @param Integer[][] $matrix * @return NULL */ function rotate(&$matrix) { $n = count($matrix); for ($i = 0; $i < floor($n / 2); $i++) { for ($j = 0; $j < $n; $j++) { $tmp = $matrix[$i][$j]; $matrix[$i][$j] = $matrix[$n - 1 - $i][$j]; $matrix[$n - 1 - $i][$j] = $tmp; } } for ($i = 0; $i < $n - 1; $i++) { for ($j = 0; $j < $n; $j++) { if ($i >= $j) continue; $tmp = $matrix[$i][$j]; $matrix[$i][$j] = $matrix[$j][$i]; $matrix[$j][$i] = $tmp; } } return; }}$matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3, 6, 7], [15,14,12,16]];$cls = new Solution();$cls->rotate($matrix);array_walk($matrix, function (&$v) { $v = implode(',', $v);});print_r($matrix);