Maison > développement back-end > tutoriel php > Un exemple de la façon d'implémenter une matrice d'impression dans le sens des aiguilles d'une montre (matrice spirale) en PHP

Un exemple de la façon d'implémenter une matrice d'impression dans le sens des aiguilles d'une montre (matrice spirale) en PHP

jacklove
Libérer: 2023-04-02 08:24:02
original
1982 Les gens l'ont consulté

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;
}
Copier après la connexion

Vous pourriez ressentir Articles d'intérêt :

Explication de la façon dont PHP implémente la méthode permettant de déterminer si un arbre binaire est symétrique

Explication de la façon dont PHP utilise une ligne de code pour supprimer tous les fichiers d'un répertoire

Explication sur la façon d'obtenir le premier caractère non répétitif dans le flux de caractères en PHP

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal