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

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

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

问题

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

5678

9101112

13141516

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

解决方法

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

注意单行单列的情况。

实现代码<?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;

}

以上就是本篇文章的所有内容了,希望对大家学习提供到帮助!!

相关推荐:

php字符串反转 面试中经常遇到

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NOIP2014 uoj20解方程 数论(同余)

又是数论题 Q&A Q&#xff1a;你TM做数论上瘾了吗 A&#xff1a;没办法我数论太差了&#xff0c;得多练&#xff08;shui&#xff09;啊 题意 题目描述 已知多项式方程&#xff1a; a0a1xa2x^2..anx^n0 求这个方程在[1, m ] 内的整数解&#xff08;n 和m 均为正整数&#x…

php transfer-encoding: chunked,php – 使用chunked transfer encoding和gzip

我最近开始在我的网站上使用gzip,它在除Opera之外的所有浏览器上都起到了一种魅力作用,它给出了一个错误,即由于数据损坏而无法解压缩内容.从我可以从测试和谷歌搜索中收集到的,使用gzip和chunked传输编码可能是一个问题.请求像css文件这样的小文件时没有错误这一事实也指向了这…

@override

目录 用处 作用 注意 用处&#xff1a; 继承抽象类&#xff0c;必须实现抽象方法&#xff0c;方法上要加override 实现接口时&#xff0c;必须实现接口里定义的方法&#xff0c;方法上要加override 作用&#xff1a; 可以检查方法签名的拼写错误 改变父类中的一些行为 Override…

java实现语音发送,Java实现发送手机短信语音验证功能代码实例

这篇文章主要介绍了java实现发送手机短信语音验证功能代码实例,www.cppcns.com文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下利用第三方平台可以实现发送手机短信验证码和语音验证码的功能&#xff0c;本文使用…

c++父类和子类转化致命的代码错误

最近在工作中&#xff0c;出现了严重的代码错误&#xff0c;对象的基类和子类的继承&#xff0c;代码大致如下&#xff1a; class A { };class B : public A { }void main() {A* a;(用于子类对象来进行赋值&#xff09; new 子类;//错误代码如下B* b (B*) a;b.方法; }//在这个…

JAVA获得天气json数据的方法,获取从天气预报接口返回回来的json数据

WampServer集成环境安装与配置实习到了第三个礼拜了,原来我们小组是以开发php为主的,我们项目的服务器也是用php做的,因此我觉得很有必要学一下php的相关知识,首先当然是搭建环境了,写篇博客分享下经验. 目录: 一.软件下载 二 ...C&plus;&plus;与Lua交互(三)通过上一篇…

大专学的pHp找什么工作,大专毕业能做什么工作 毕业都去干嘛了

大专毕业能做什么工作&#xff0c;大专毕业后都去干嘛了&#xff0c;我梳理了基本信息&#xff0c;看来一下&#xff01;大专毕业能做什么工作专科生毕业之后从业的职位基础包含了社会发展的各个方面。一般能够从业自身技术专业有关的工作中&#xff0c;如果有做生意的技能&…

SpringMVC启动过程详解(li)

通过对SpringMVC启动过程的深入研究&#xff0c;期望掌握Java Web容器启动过程&#xff1b;掌握SpringMVC启动过程&#xff1b;了解SpringMVC的配置文件如何配置&#xff0c;为什么要这样配置&#xff1b;掌握SpringMVC是如何工作的&#xff1b;掌握Spring源码的设计和增强阅读…

fusioncharts json java,FusionCharts使用教程:利用XML/JSON属性加载外部LOGO

在使用FusionCharts图表时&#xff0c;你可以在运行时加载外部Logo并显示于图表中。Logo可以是GIF/JPEG/PNG或SWF文件。你可以使用chart元素的logoURL属性来加载一个Logo。XMLJSON{"chart":{ "yaxisname":"Sales Figure", "caption":&…

java redis 多节点,Redis单机多节点集群部署,超简单

1、在虚拟机中部署具有三个主节点&#xff0c;三个从节点的集群(注&#xff0c;必须要有从节点)&#xff0c;虚拟机的IP地址为192.168.133.129&#xff0c;三个主节点的部口号分别为7001(从&#xff1a;7004)、7002(从&#xff1a;7005)、7003(从&#xff1a;7006)。2、安装Red…

matlab检测串口数据帧头,MATLAB 串口读取姿态数据及GUI实时动态显示设计

上一篇实现了Matlab 对串口数据的读取&#xff0c;数据可以读取并且保存到本地。本文主要设计GUI并且动态的显示曲线。可以更直观的观察实时的姿态数据和传感器数据。GUI设计效果&#xff1a;姿态GUi.png分别设置三个区域&#xff0c;分别为数据接收显示区域&#xff0c;串口设…

[转]面向对象的六大原则

现在编程的主流语言基本上都是面向对象的。如C#&#xff0c;C&#xff0c;JAVA。我们在使用时&#xff0c;已经构造了一个个的类。但是往往由于我们在类内部或外部的设计上存在种种问题&#xff0c;导致尽管是面向对象的语言&#xff0c;却是面向过程的逻辑&#xff0c;甚至维护…

matlab中response函数,matlab函数的种类

突然发现matlab的函数还是很有讲究的&#xff0c;以前只是用&#xff0c;很少注意这个问题&#xff0c;现在看到了稍微总结一下吧。在matlab帮助中搜索Types of Functions&#xff0c;可以看到matlab常用的函数种类&#xff1a;Anonymous Functions --匿名函数Primary Function…

面向对象的十大原则

面向对象设计原则是OOPS&#xff08;Object-Oriented Programming System&#xff0c;面向对象的程序设计系统&#xff09;编程的核心&#xff0c;但大多数Java程序员追逐像Singleton、Decorator、Observer这样的设计模式&#xff0c;而不重视面向对象的分析和设计。甚至还有经…

php返回支付状态,magento paypal返回支付状态

paypal帐户&#xff0c;帐户类型分为Personal(个人)、Premier(高级)和Business(商业)&#xff0c;他们的差别对于开发者来 说主要是返回的信息&#xff0c;Personal的不能使用IPN和PDT等商家工具&#xff0c;即不能获取交易信息&#xff0c;但是Personal帐户收款无需手续 费&am…

上下文管理、redis发布订阅、RabbitMQ发布订阅、SQLAlchemy

一、上下文管理 import contextlib contextlib.contextmanager def work_state(state_list,worker_thread):state_list.append(worker_thread)try:yieldfinally:state_list.remove(worker_thread) free_list[] current_thread"alex" with work_state(free_list,curr…

php symbol table,gdb方式遍历EG(symbol_table) 哈希表的key_PHP教程

Sara Golemon写过一篇文章&#xff0c;里面提到&#xff1a;“是否存在特别的地方可以找到GLOBALS数组&#xff1f;”答案是“存在”&#xff0c;就是EG(symbol_table)&#xff0d;Executor Globals结构&#xff0c;她也给出了找的具体实例&#xff0c;如下PHP_FUNCTION(confir…

常用快捷键归纳

CtrlX     剪贴 CtrlC    复制 CtrlV    粘贴 CtrlD    删除对应行 CtrlA    全选 CtrlZ    撤销 Alt↑    两行代码互换 CtrlAltX J 运行代码 CtrlshiftO 添加缺少的包&#xff0c; Ctrlshift↓  向下复制本行代码转载于:https://www.cnblogs.c…

php edm 系统,edm.php

// ----------------------------------------------------------------------// | 科创众达// ----------------------------------------------------------------------// | Copyright (c) 2011 http://ctrlcoo.com All rights reserved.// -------------------------------…

jQuery选择id属性带有.点符号元素的方法

如果jquery要选择的元素id中带有点符号&#xff0c;在选择时需要在点前面加上两个反斜杠&#xff0c;如&#xff1a;$("#address\\.street").text("Enter this field");<div id"address.street"> http://www.jb51.net </div> 转载于…