Cet article présente principalement la méthode de réalisation d'une matrice d'impression dans le sens des aiguilles d'une montre (matrice spirale) en PHP, et implique les compétences opérationnelles associées de PHP pour réaliser la fonction de matrice spirale basée sur le parcours de tableau et l'impression de simulation d'opération. Les amis dans le besoin peuvent se référer à. it
L'exemple de cet article décrit la méthode d'impression d'une matrice dans le sens des aiguilles d'une montre en PHP. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :
Question
Saisissez une matrice et imprimez-la dans le sens des aiguilles d'une montre depuis l'extérieur. à l'intérieur. Imprimez chaque numéro. Par exemple, si vous entrez la matrice suivante :
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 |
, alors les nombres 1,2,3,4,8, 12,16,15 seront imprimés dans l'ordre ,14,13,9,5,6,7,11,10.
La solution
c'est imprimer en rond, à condition de bien contrôler le cycle.
Faites attention à la situation d'une seule ligne et d'une seule colonne.
Code de mise en œuvre
<?php function printMatrix($matrix) { $row = count($matrix); $col = count($matrix[0]); if($row == 0 || $col == 0) return $matrix; $result = array(); $left = 0;$right = $col-1; $top = 0;$bottom = $row-1; while($left<=$right && $top<= $bottom){ for($i =$left;$i<=$right;++$i){ array_push($result, $matrix[$top][$i]); } for($i =$top+1;$i<=$bottom;++$i) array_push($result, $matrix[$i][$right]); if($top!=$bottom){ for($i = $right-1;$i>=$left;--$i) array_push($result, $matrix[$bottom][$i]); } if($left!=$right){ for($i = $bottom-1;$i>$top;--$i) array_push($result, $matrix[$i][$left]); } $left++;$right--;$top++;$bottom--; } return $result; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!