下面是自己用到的一些遞迴方法,當然都是借鑑的,各位看官請勿怪
第一種 有層級
$array = array(
array('id' => 1, 'pid' => 0, 'n' => '河北省'),
array('id' => 2, 'pid' => 0, 'n' => '北京市'),
array('id' => 3, 'pid' => 1, 'n' => '邯鄲市'),
array('id' => 4, 'pid' => 2, 'n' => '朝陽區'),
array('id' => 5, 'pid' => 2, 'n' => '通州區'),
array('id' => 6, 'pid' => 4, 'n' => '望京'),
array('id' => 7, 'pid' => 4, 'n' => '酒仙橋'),
array('id' => 8, 'pid' => 3, 'n' => '永年區'),
array('id' => 9, 'pid' => 1, 'n' => '武安市'),
array('id' => 10, 'pid' => 8, 'n' => '永年區鎮'),
array('id' => 11, 'pid' => 0, 'n' => '上海市')
);/*
* 遞迴獲取無限極 -- 有層級
* @parem $array 陣列
* @parem $pid ,最高端別,預設為0,輸出從pid 級別的資料
* @parem $level 層級,預設0
* */
function gettree($array, $pid =0, $level = 0)
}return
$list;}
//呼叫
$list=gettree($array
);/*
*根據指定id 的查詢,所有的父級
* @parem $id_pid 要查詢的id 或者 要查詢id的pid;如果傳入的是id 包括當前id 值,如果傳入id_pid不包括當前id的值
* @parem $array 查分類的資料,在專案使用中此引數可以不傳,直接使用sql 查詢
* @parem $level 當前id所在層級,預設2
* */
function getparent($id_pid,$array=array(), $level = 2)}}
return
$list;}
//呼叫
$lists = getparent(10,$array, $level = 5);
此方法借鑑於 雪劍無影 大大部落格。
再次感謝
第二種遞迴方法--無層級
//1.整個會員表的資料
$member = array
(
array('id'=>1, 'agentid'=>0, 'nickname' => 'a'),
array('id'=>2, 'agentid'=>1, 'nickname' => 'b'),
array('id'=>3, 'agentid'=>1, 'nickname' => 'c'),
array('id'=>4, 'agentid'=>8, 'nickname' => 'd'),
array('id'=>5, 'agentid'=>3, 'nickname' => 'e'),
array('id'=>6, 'agentid'=>3, 'nickname' => 'f'),
array('id'=>7, 'agentid'=>3, 'nickname' => 'g'),
array('id'=>8, 'agentid'=>8, 'nickname' => 'h')
);/*
*2.獲取某個會員的無限下級方法
*$members是所有會員資料表,$mid是使用者的id
*/function getteammember($members, $mid
) }
}$mids=$othermids;//
foreach中找到的我的下級集合,用來下次迴圈
} while ($state==true
);
return
$teams;}
$res=getteammember($member ,1);
該方法借鑑自 高久峰 大大的部落格。
遞迴層級自定下級
*分類遞迴* $categorys 數值 $pid父類id
$l等級
*/function getparents($categorys,$pid = 0,$l=0)
$list = $v
; }
}return
$list
;}
該方法借鑑自 公子肆 大大的部落格。
再次感謝。
本文只是博主自己儲存用到的一些方法,如果對您有所幫助,是對博主最大的滿足
再次感謝兩位大大的分享
2023年04月10日
php遞迴實現無限極分類
一 陣列 categories array array id 1,name 陝西 parent id 0 array id 2,name 西安 parent id 1 array id 3,name 長安區 parent id 2 array id 4,name 河南 parent id 0 arr...
無限極聯動 遞迴
最近寫了乙個四級聯動,現在分享下 其實是可以無限極聯動,只要資料夠多 定義方法,返回值根據自己的來我的是result public result lian 最後全部查完 返回列印 return result.ok data list public list xx int fid,int le 根據父...
遞迴 無限極分類
遞迴無限極分類就是自身呼叫自身進行迴圈操作,有兩種辦法一種是通過等級另一種是通過資料結構進行資料迴圈 public function roles data,pid 0,levae 0 將資料轉換成陣列 d json decode json encode data true array array 將...