首頁  >  文章  >  後端開發  >  php實作順時針列印矩陣的程式碼實例

php實作順時針列印矩陣的程式碼實例

不言
不言轉載
2018-11-17 17:28:392182瀏覽

這篇文章帶給大家的內容是關於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中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除

相關文章

看更多