首頁 > 後端開發 > PHP問題 > php程式碼怎麼實作矩陣

php程式碼怎麼實作矩陣

藏色散人
發布: 2023-03-08 18:54:01
原創
2918 人瀏覽過

php程式碼實現矩陣的方法:先取出行數和列數;然後在外層循環控制圈數;接著透過「j=i;j

php程式碼怎麼實作矩陣

本文操作環境:windows7系統、PHP7.1版,DELL G3電腦

[PHP] 演算法-順時針列印矩陣的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中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板