• 技术文章 >后端开发 >PHP问题

    php代码怎么实现矩阵

    藏色散人藏色散人2021-03-17 09:49:55原创384

    php代码实现矩阵的方法:首先取出行数和列数;然后在外层循环控制圈数;接着通过“j=i;j<col-i;j++;j<; arr[i][j]”方式实现第一个for循环;最后通过“k=i+1”实现第二个for循环,并以此类推即可。

    本文操作环境:windows7系统、PHP7.1版,DELL G3电脑

    [PHP] 算法-顺时针打印矩阵的PHP实现

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

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

    3.第一个for循环,从左到右,j=i;j<col-i;j++;j<; arr[i][j]

    4.第二个for循环,从上到下,k=i+1;k<row-i;k++; arr[k][col-1-i]

    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中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php
    上一篇:如何解决php cookies乱码问题 下一篇:php 人民币小写怎么转大写
    第16期线上培训班

    相关文章推荐

    • PHP是如何计算整数除法的?• 浅谈php正则替换函数preg_replace的用法• php怎么去除单词某个字母• php substr截取字符串乱码怎么办• 如何解决php cookies乱码问题

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网