你值得信赖的源码站!

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

这篇文章主要介绍了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. }

赞(0) 本模板价: 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《PHP实现顺时针打印矩阵(螺旋矩阵)的方法示例》
文章链接:https://www.adminn.cn/1086.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏