服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - PHP教程 - PHP实现顺时针打印矩阵(螺旋矩阵)的方法示例

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

2019-10-26 15:17重口味AC PHP教程

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

本文实例讲述了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程序设计有所帮助。

延伸 · 阅读

精彩推荐