Maison >développement back-end >tutoriel php >Exemple de mise en œuvre d'une matrice d'impression dans le sens des aiguilles d'une montre (matrice spirale) en PHP

Exemple de mise en œuvre d'une matrice d'impression dans le sens des aiguilles d'une montre (matrice spirale) en PHP

韦小宝
韦小宝original
2018-01-13 11:54:342103parcourir

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, impliquant les compétences opérationnelles associées de PHP basées sur le parcours de tableau et l'impression de simulation d'opération pour réaliser la fonction de matrice spirale. en PHP Les amis peuvent se référer à cet article.

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 nombre. 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,14,13. ,9,5 sera imprimé dans l'ordre 6,7,11,10.

La solution

est d'imprimer en cercles. , tant que la boucleC'est tout.
Faites attention à la situation d'une seule ligne et d'une seule colonne.

Code d'implémentation

<?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 tout le contenu de cet article, j'espère que cela pourra aider tout le monde à apprendre ! !

Recommandations associées :

Méthode d'implémentation PHP pour déterminer si un arbre binaire est symétrique

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

chaîne phpL'inversion est souvent rencontrée dans les entretiens

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!

Déclaration:
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