Heim  >  Artikel  >  Backend-Entwicklung  >  Codebeispiel für PHP zum Drucken der Matrix im Uhrzeigersinn

Codebeispiel für PHP zum Drucken der Matrix im Uhrzeigersinn

不言
不言nach vorne
2018-11-17 17:28:392191Durchsuche

Der Inhalt dieses Artikels befasst sich mit dem Codebeispiel für die Druckmatrix im Uhrzeigersinn. Ich hoffe, dass er für Sie hilfreich ist.

1. Nehmen Sie die Anzahl der Zeilen und Spalten, Zeile, Spalte und die Anzahl der Kreise ist (kleinerer Wert -1)/2+1

2 Schleife steuert die Anzahl der Kreise, vier innere for-Schleifen, i

3. Die erste for-Schleife, von links nach rechts, j=i;j

4. Die zweite for-Schleife, von oben nach unten, k=i+1;k 5. Die dritte Schleife, von rechts nach links, m=col-2-i;m>=i&&row-1-i!=i;m-- arr[row-1-i][m]//row - Wenn 1-i!=i eine einzelne Zeile ist, wird sie nur einmal gedruckt

6. Die vierte Schleife, von unten nach oben, 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);

Das obige ist der detaillierte Inhalt vonCodebeispiel für PHP zum Drucken der Matrix im Uhrzeigersinn. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen

In Verbindung stehende Artikel

Mehr sehen