-
php数组比较实现查找连续数的方法
这篇文章主要介绍了php数组比较实现查找连续数的方法,实例分析了php数组查找及字符串操作的相关技巧,需要的朋友可以参考下。
本文实例讲述了php数组比较实现查找连续数的方法,分享给大家供大家参考,具体如下:
- $data = array();
- $data[]= array("01" ,"02", "18" , "29" , "31" , "32");
- $data[]= array("02" ,"09", "11" , "22" , "24" , "27");
- $data[]= array("07" ,"16", "26" , "27" , "29" , "31");
- $data[]=array("04", "05", "07", "10", "13", "25");
- $data[]=array("02", "04", "05", "08", "19", "22");
- $data[]=array("03", "04", "15", "25", "26", "30");
- $data[]=array("01", "03", "06", "12", "16", "32");
- $data[]=array("01", "05", "14", "17", "22");
- // 判断表格中3个以上的连续
- function checkAll($sourceArr2D) {
- $count = sizeof($sourceArr2D);
- for($i=0; $i<$count; $i++){
- check_h($sourceArr2D[$i], $i);//找寻水平方向
- if($i>0) {
- check_v($sourceArr2D, $i);// 找寻竖直方向
- check_l($sourceArr2D, $i);// 找寻/方向
- check_r($sourceArr2D, $i);// 找寻方向
- }
- }
- }
- // 判断水平方向
- $h = array();// 保存水平方向上的搜寻结果
- function check_h($arr, $rownum) {
- //sort($arr, SORT_NUMERIC);
- global $h;
- $flag = false;
- for($i=2; $i<6; $i++){
- if( $arr[$i-2]==$arr[$i]-2 ){
- // 因为数组内数字不重复且有序故可取巧
- if(!$flag) {
- $h[$rownum] = array($arr[$i-2], $arr[$i-1], $arr[$i]);
- $flag = true;
- }else{
- array_push($h[$rownum], $arr[$i]);
- }
- }
- }
- }
- // 判断竖直方向
- $v = array();// 保存竖直方向上的搜寻结果
- function check_v($sourceArr2D, $rownum) {
- global $v;
- for($i=0; $i<6; $i++){
- $val = $sourceArr2D[$rownum][$i];
- if( in_array($rownum...$val, $v) ){
- continue;
- }
- if( in_array($val,$sourceArr2D[$rownum-1]) && in_array($val,$sourceArr2D[$rownum+1]) ){
- array_push($v, ($rownum-1)...$val, $rownum...$val, ($rownum+1)...$val);
- $tmp = $rownum + 2;
- while( ($tmp < sizeof($sourceArr2D)) && in_array($val, $sourceArr2D[$tmp]) ){
- array_push($v, $tmp...$val);
- $tmp++;
- }
- }
- }
- }
- // 判断/方向
- $l = array();// 保存/方向上的搜寻结果
- function check_l() {
- }
- // 判断方向
- $r = array();// 保存方向上的搜寻结果
- function check_r() {
- }
- // 结束定义,开始应用
- checkAll($data);
- echo
- //水平方向上的找寻:
- print_r($h);
- echo
- //竖直方向上的找寻:
- print_r($v);
- echo
- //方向上的找寻:
- print_r($l);
- echo
- //方向上的找寻:
- print_r($r);
希望本文所述对大家的php程序设计有所帮助。
出处:http://www.phpfensi.com/php/20210614/16322.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式