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
jackloveoriginal
2018-07-02 17:57:441994parcourir

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;
}

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!

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