当前位置:首页 > PHP教程 > php应用 > 列表

PHP实现顺时针打印矩阵(螺旋矩阵)的方法示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-29 14:20:30 浏览: 评论:0 

这篇文章主要介绍了PHP实现顺时针打印矩阵(螺旋矩阵)的方法,涉及PHP基于数组遍历、运算模拟打印实现螺旋矩阵功能的相关操作技巧,需要的朋友可以参考下。

本文实例讲述了PHP实现顺时针打印矩阵的方法,分享给大家供大家参考,具体如下:

问题

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:

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

则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

解决方法

就是一圈一圈地打印,只要控制好循环就可以。

注意单行单列的情况。

实现代码:

  1. <?php 
  2. function printMatrix($matrix
  3.  $row = count($matrix); 
  4.  $col = count($matrix[0]); 
  5.  if($row == 0 || $col == 0) 
  6.   return $matrix
  7.  $result = array(); 
  8.  $left = 0;$right = $col-1; $top = 0;$bottom = $row-1; 
  9.  while($left<=$right && $top<= $bottom){ 
  10.   for($i =$left;$i<=$right;++$i){ 
  11.    array_push($result$matrix[$top][$i]); 
  12.   } 
  13.   for($i =$top+1;$i<=$bottom;++$i
  14.    array_push($result$matrix[$i][$right]); 
  15.   if($top!=$bottom){ 
  16.    for($i = $right-1;$i>=$left;--$i
  17.     array_push($result$matrix[$bottom][$i]); 
  18.   } 
  19.   if($left!=$right){ 
  20.    for($i = $bottom-1;$i>$top;--$i
  21.     array_push($result$matrix[$i][$left]); 
  22.   } 
  23.   $left++;$right--;$top++;$bottom--; 
  24.  } 
  25.  return $result
  26. }

Tags: PHP顺时针打印 PHP螺旋矩阵

分享到: