当前位置:首页 > PHP教程 > php数组 > 列表

php数组比较实现查找连续数的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-14 20:52:45 浏览: 评论:0 

这篇文章主要介绍了php数组比较实现查找连续数的方法,实例分析了php数组查找及字符串操作的相关技巧,需要的朋友可以参考下。

本文实例讲述了php数组比较实现查找连续数的方法,分享给大家供大家参考,具体如下:

  1. $data = array(); 
  2. $data[]= array("01" ,"02", "18" , "29" , "31" , "32"); 
  3. $data[]= array("02" ,"09", "11" , "22" , "24" , "27"); 
  4. $data[]= array("07" ,"16", "26" , "27" , "29" , "31"); 
  5. $data[]=array("04", "05", "07", "10", "13", "25"); 
  6. $data[]=array("02", "04", "05", "08", "19", "22"); 
  7. $data[]=array("03", "04", "15", "25", "26", "30"); 
  8. $data[]=array("01", "03", "06", "12", "16", "32"); 
  9. $data[]=array("01", "05", "14", "17", "22"); 
  10. // 判断表格中3个以上的连续  
  11. function checkAll($sourceArr2D) { 
  12.   $count = sizeof($sourceArr2D); 
  13.   for($i=0; $i<$count; $i++){ 
  14.     check_h($sourceArr2D[$i], $i);//找寻水平方向 
  15.     if($i>0) { 
  16.       check_v($sourceArr2D, $i);// 找寻竖直方向 
  17.       check_l($sourceArr2D, $i);// 找寻/方向 
  18.       check_r($sourceArr2D, $i);// 找寻方向 
  19.     } 
  20.   } 
  21. } 
  22. // 判断水平方向 
  23. $h = array();// 保存水平方向上的搜寻结果 
  24. function check_h($arr, $rownum) { 
  25.   //sort($arr, SORT_NUMERIC); 
  26.   global $h; 
  27.   $flag = false; 
  28.   for($i=2; $i<6; $i++){ 
  29.     if( $arr[$i-2]==$arr[$i]-2 ){ 
  30.     // 因为数组内数字不重复且有序故可取巧 
  31.       if(!$flag) { 
  32.         $h[$rownum] = array($arr[$i-2], $arr[$i-1], $arr[$i]); 
  33.         $flag = true; 
  34.       }else{ 
  35.         array_push($h[$rownum], $arr[$i]); 
  36.       } 
  37.     } 
  38.   } 
  39. } 
  40. // 判断竖直方向 
  41. $v = array();// 保存竖直方向上的搜寻结果 
  42. function check_v($sourceArr2D, $rownum) { 
  43.   global $v; 
  44.   for($i=0; $i<6; $i++){ 
  45.     $val = $sourceArr2D[$rownum][$i]; 
  46.     if( in_array($rownum...$val, $v) ){ 
  47.       continue; 
  48.     } 
  49.     if( in_array($val,$sourceArr2D[$rownum-1]) && in_array($val,$sourceArr2D[$rownum+1]) ){ 
  50.       array_push($v, ($rownum-1)...$val, $rownum...$val, ($rownum+1)...$val); 
  51.       $tmp = $rownum + 2; 
  52.       while( ($tmp < sizeof($sourceArr2D)) && in_array($val, $sourceArr2D[$tmp]) ){ 
  53.         array_push($v, $tmp...$val); 
  54.         $tmp++; 
  55.       } 
  56.     } 
  57.   } 
  58. } 
  59. // 判断/方向 
  60. $l = array();// 保存/方向上的搜寻结果 
  61. function check_l() { 
  62. } 
  63. // 判断方向 
  64. $r = array();// 保存方向上的搜寻结果 
  65. function check_r() { 
  66. } 
  67. // 结束定义,开始应用 
  68. checkAll($data); 
  69. echo 
  70. //水平方向上的找寻: 
  71. print_r($h); 
  72. echo 
  73. //竖直方向上的找寻: 
  74. print_r($v); 
  75. echo 
  76. //方向上的找寻: 
  77. print_r($l); 
  78. echo 
  79. //方向上的找寻: 
  80. print_r($r); 

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

Tags: php数组比较 php查找连续数

分享到: