首页 > 后端开发 > php教程 > php实现顺时针打印矩阵的代码实例

php实现顺时针打印矩阵的代码实例

不言
发布: 2023-04-04 12:38:01
转载
2205 人浏览过

本篇文章给大家带来的内容是关于php实现顺时针打印矩阵的代码实例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1、行数和列数取出来row,col,圈数就是 (较小值-1)/2+1

2、外层循环控制圈数,内层四个for循环,i

3、第一个for循环,从左到右,j=i;j

4、第二个for循环,从上到下,k=i+1;k

5、第三个循环,从右到左,m=col-2-i;m>=i&&row-1-i!=i;m--   arr[row-1-i][m]//row-1-i!=i单行的时候只打印一次

6、第四个循环,从下到上,n=row-2-i;n>=i&&col-1-i!=i;n--  arr[n][i]

<?php
$arr=array();
$flag=0;
for($i=0;$i<2;$i++){
        $flag=$i*2;
        for($j=0;$j<2;$j++){
                $flag++;
                $arr[$i][]=$flag;
        }   
}
var_dump($arr);
//顺时针打印矩阵
function printMatrix($arr){
        $res=array();
        $row=count($arr);
        $col=count($arr[0]);
        $circle=intval((($row>$col ? $col : $row)-1)/2+1);
        for($i=0;$i<$circle;$i++){
                //转圈开始
                //从左到右
                for($j=$i;$j<=$col-1;$j++){
                        $t=$arr[$i][$j];
                        if(in_array($t,$res)) continue;
                        $res[]=$t;
                }   
                //从上到下
                for($k=$i+1;$k<$row-$i;$k++){
                        $t=$arr[$k][$col-$i-1];
    
                        if(in_array($t,$res)) continue;
                        $res[]=$t;
                }   
                //从右到左
                for($m=$col-$i-2;$m>=$i;$m--){
                        $t=$arr[$row-$i-1][$m];
                        if(in_array($t,$res)) continue;
                        $res[]=$t;
                }   
                //从下到上
                for($n=$row-$i-2;$n>$i;$n--){
                        $t=$arr[$n][$i];
                        if(in_array($t,$res)) continue;
                        $res[]=$t;
                }   
        }   
        return $res;
}
$res=printMatrix($arr);
登录后复制

以上是php实现顺时针打印矩阵的代码实例的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
php
来源:cnblogs.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板