Method Example of Clockwise Printing Matrix of Spiral Matrix by PHP

  • 2021-09-04 23:39:48
  • OfStack

In this paper, an example is given to describe the method of clockwise printing matrix by PHP. Share it for your reference, as follows:

Problem

Enter a matrix and print out every 1 number in clockwise order from outside to inside, for example, if you enter the following matrix:

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

The numbers 1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10 are printed in turn.

Solution

Is to print 1 circle 1 circle, as long as you control the cycle.
Pay attention to the situation of single row and single column.

Implementation code


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

More readers interested in PHP can check the topic of this site: "PHP Mathematical Operation Skills Summary", "PHP Operation and Operator Usage Summary", "php String (string) Usage Summary", "PHP Array (Array) Operation Skills Encyclopedia", "PHP Common Traversal Algorithms and Skills Summary", "PHP Data Structure and Algorithm Tutorial", "php Programming Algorithm Summary", "php Regular Expression Usage Summary" and "php Common Database Operation Skills Summary"

I hope this article is helpful to everyone's PHP programming.


Related articles: