本篇文章主要介紹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類比asp中response類的方法
smarty自訂資源的定義與提示
php針對當前編碼的判斷與對應的編碼轉換實現技巧