加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP逆时针旋转矩阵

发布时间:2020-12-13 22:05:25 所属栏目:PHP教程 来源:网络整理
导读:我正在解决一个更大的问题,一步我需要逆时针旋转一个二维阵列. 所以,如果我有这个矩阵: 1 2 3 41 2 3 43 4 5 63 4 5 6 轮换后它将是: 4 4 6 63 3 5 52 2 4 41 1 3 3 我发现顺时针旋转了solution: ?php $a = array(array(1,2,3,4),array(5,6,7,8),array(9,
我正在解决一个更大的问题,一步我需要逆时针旋转一个二维阵列.

所以,如果我有这个矩阵:

1 2 3 4
1 2 3 4
3 4 5 6
3 4 5 6

轮换后它将是:

4 4 6 6
3 3 5 5
2 2 4 4
1 1 3 3

我发现顺时针旋转了solution:

<?php    
$a = array(array(1,2,3,4),array(5,6,7,8),array(9,1,2),array(3,4,5,6));
$b = array(); //result

while(count($a)>0)
{
    $b[count($a[0])-1][] = array_shift($a[0]);
    if (count($a[0])==0)
    {
         array_shift($a);
    }
}
?>

问题是,即使a是一维的或只有一个元素,这也必须起作用.

那么,1 2 3 4将成为:

4
3
2
1

解决方法

$b = call_user_func_array(
    'array_map',array(-1 => null) + array_map('array_reverse',$a)
);

我将把它作为练习让读者弄清楚它是如何工作的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读