php - 如何将 php 中的二维数组旋转 90 度

标签 php arrays matrix

我想将矩阵顺时针旋转 90 度。这相当于使输入中的第一列成为输出的第一行,输入的第二列成为输出的第二行,输入的第三列成为输出的第三行。请注意,列的底部 = 行的开头,因为旋转了 90 度。

例如:

$matrix=    [[1, 2, 3]
             [4, 5, 6], 
             [7, 8, 9]];

rotate90degrees($matrix)=      [[7, 4, 1],
                                [8, 5, 2],
                                [9, 6, 3]]

我所知道的是我首先转置矩阵,然后交换列以将矩阵旋转 90 度。如何将其应用于 php?

最佳答案

我向您展示了如何转置数组以响应 previous question。 ,要旋转90度,使用那个转置逻辑,然后依次反转每行中值的顺序:

$matrix = [
    [1, 2, 3],
    [4, 5, 6], 
    [7, 8, 9],
];

array_unshift($matrix, null);
$matrix = call_user_func_array('array_map', $matrix);
$matrix = array_map('array_reverse', $matrix);
var_dump($matrix);

Demo

关于php - 如何将 php 中的二维数组旋转 90 度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30087158/

相关文章:

php - 流明:异常处理程序 - 不捕获 QueryException 或 PDOException

java - 在Java中对3维数组进行排序

c - 如何在 C 语言中转置二维矩阵?

php - 如果在 PHP 中使用 Mkdir 递归标志,为什么嵌套目录不是 chmod?

php - Zend Db Table 摘要向行添加新字段

php - 使用php解析XML数据放入mysql数据库

c# - 从数组 C# 中删除字符串

c++ - 指向函数 C++ 的指针数组

java - 如何用Java分别对二维数组的行和列求和?

android - Android 中的偏斜矩阵