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

2025-05-29 0 96

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80
$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程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 php数组比较实现查找连续数的方法 https://www.kuaiidc.com/100978.html

相关文章

发表评论
暂无评论