php數(shù)組比較實(shí)現(xiàn)查找連續(xù)數(shù)的方法
本文實(shí)例講述了php數(shù)組比較實(shí)現(xiàn)查找連續(xù)數(shù)的方法。分享給大家供大家參考。具體如下:
$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個(gè)以上的連續(xù)
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();// 保存水平方向上的搜尋結(jié)果
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 ){
// 因?yàn)閿?shù)組內(nèi)數(shù)字不重復(fù)且有序故可取巧
if(!$flag) {
$h[$rownum] = array($arr[$i-2], $arr[$i-1], $arr[$i]);
$flag = true;
}else{
array_push($h[$rownum], $arr[$i]);
}
}
}
}
// 判斷豎直方向
$v = array();// 保存豎直方向上的搜尋結(jié)果
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();// 保存/方向上的搜尋結(jié)果
function check_l() {
}
// 判斷方向
$r = array();// 保存方向上的搜尋結(jié)果
function check_r() {
}
// 結(jié)束定義,開始應(yīng)用
checkAll($data);
echo
//水平方向上的找尋:
print_r($h);
echo
//豎直方向上的找尋:
print_r($v);
echo
//方向上的找尋:
print_r($l);
echo
//方向上的找尋:
print_r($r);
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
- php比較多維數(shù)組中值的大小排序?qū)崿F(xiàn)代碼
- php數(shù)組操作之鍵名比較與差集、交集賦值的方法
- php數(shù)組應(yīng)用之比較兩個(gè)時(shí)間的相減排序
- php usort 使用用戶自定義的比較函數(shù)對(duì)二維數(shù)組中的值進(jìn)行排序
- PHP 數(shù)組和字符串互相轉(zhuǎn)換實(shí)現(xiàn)方法
- php獲取數(shù)組長(zhǎng)度的方法(有實(shí)例)
- PHP中數(shù)組合并的兩種方法及區(qū)別介紹
- PHP遍歷數(shù)組的方法匯總
- php數(shù)組添加元素方法小結(jié)
- PHP自定義函數(shù)實(shí)現(xiàn)數(shù)組比較功能示例
相關(guān)文章
php后臺(tái)程序與Javascript的兩種交互方式
在網(wǎng)頁(yè)制作過(guò)程中怎樣在不刷新頁(yè)面的情況下使前臺(tái)頁(yè)面和后臺(tái)CGI頁(yè)面保持交互一直是個(gè)問題。這里介紹兩個(gè)方法。2009-10-10
在mac?OS上進(jìn)行多個(gè)PHP版本之間切換的實(shí)現(xiàn)方法
不同項(xiàng)目使用php版本可能不同,需要安裝不同版本php,本文給大家介紹了在macOS上進(jìn)行多個(gè)?PHP?版本之間切換的實(shí)現(xiàn)方法,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2023-10-10
Session服務(wù)器配置指南與使用經(jīng)驗(yàn)的深入解析
本篇文章是對(duì)Session服務(wù)器配置指南與使用經(jīng)驗(yàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
一文解決PHP中生成隨機(jī)數(shù)遇到的重復(fù)問題
項(xiàng)目開發(fā)中很多地方需要用到唯一編碼,比如說(shuō)訂單、卡券、邀請(qǐng)碼等等,這些編號(hào)是需要嚴(yán)格保證唯一性的,因?yàn)槿绻到y(tǒng)中訂單的編號(hào)存在倆一模一樣的,那造成很多數(shù)據(jù)的錯(cuò)亂,所以本文給大家介紹了如何解決PHP中生成隨機(jī)數(shù)遇到的重復(fù)問,需要的朋友可以參考下2023-12-12
php輸出控制函數(shù)和輸出函數(shù)生成靜態(tài)頁(yè)面
這篇文章主要為大家詳細(xì)介紹了php輸出控制函數(shù)和輸出函數(shù)生成靜態(tài)頁(yè)面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
phpMyAdmin 鏈接表的附加功能尚未激活問題的解決方法(已測(cè))
今天幫客戶配置phpmyadmin,一直有“鏈接表的附加功能尚未激活”的問題,登陸phpmyadmin后,會(huì)在底部顯示“鏈接表的附加功能尚未激活。要查出原因,請(qǐng)點(diǎn)擊此處?!钡奶崾尽?/div> 2012-03-03
PHP使用NuSOAP調(diào)用Web服務(wù)的方法
這篇文章主要介紹了PHP使用NuSOAP調(diào)用Web服務(wù)的方法,涉及php實(shí)現(xiàn)web服務(wù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07最新評(píng)論

