服务器之家

服务器之家 > 正文

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

时间:2019-10-26 15:17     来源/作者:重口味AC

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

问题

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

1 2 3 4
5 6 7 8
9 10 11 12
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; 

希望本文所述对大家PHP程序设计有所帮助。

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
返回顶部