本文實(shí)例講述了php無(wú)限極分類實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
今天給大家?guī)?lái)的是php的無(wú)限極分類技術(shù),本人把無(wú)限極分類劃分為兩種。
首先我把數(shù)據(jù)庫(kù)表給大家看看,數(shù)據(jù)庫(kù)是tasks,數(shù)據(jù)庫(kù)表也是tasks
第一種方法(數(shù)組法)
這種方法其實(shí)是先把所有的數(shù)據(jù)查詢出來(lái),重點(diǎn)在于生成的二維數(shù)組
?php
//分類方法
function make_list($parent,$deep = 0){
global $tasks;//申明全局變量
global $strArr;//申明全局變量
$qianzhui = str_repeat("nbsp;",$deep)."|--";
foreach ($parent as $key => $value) {
$strArr[] = $qianzhui.$value;
if(isset($tasks[$key])){
make_list($tasks[$key],++$deep);//遞歸調(diào)用函數(shù)
}
}
}
//數(shù)據(jù)庫(kù)連接
$dbc = mysqli_connect("localhost","root","1234","tasks");
//拼接sql語(yǔ)句
$q = "select task_id,parent_id,task from tasks where date_completed = '0000-00-00:00:00:00' order by parent_id,date_added asc";
//執(zhí)行sql
$r = mysqli_query($dbc,$q);
//遍歷結(jié)果集
while (list($task_id,$parent_id,$task) = mysqli_fetch_array($r,MYSQLI_NUM)) {
//組成數(shù)組(一級(jí)鍵為parent_id,二級(jí)鍵為task_id,值為任務(wù)內(nèi)容)
$tasks[$parent_id][$task_id] = $task;
}
//打印數(shù)組
echo "pre>";
print_r($tasks);
echo "/pre>";
make_list($tasks[0]);
echo "pre>";
//打印縮進(jìn)數(shù)組
print_r($strArr);
echo "/pre>";
?>
運(yùn)行結(jié)果圖
第二種方法(查表法)
這種方法其實(shí)是在一開(kāi)始只查詢出parent_id=0的所有任務(wù),然后采用遞歸的方式,動(dòng)態(tài)生成查詢條件,然后把每條記錄的task_id又作為task_id,這樣又進(jìn)行新一輪的查詢,知道查詢結(jié)果為空。
?php
function findArr($where = "parent_id = 0",$deep = 0){
$dbc = mysqli_connect("localhost","root","1234","tasks");
global $strArr;
$q = "select task_id,parent_id,task from tasks where ".$where." order by parent_id,date_added asc";
$r = mysqli_query($dbc,$q);
$qianzhui = str_repeat("nbsp;", $deep)."|--";
while (list($task_id,$parent_id,$task) = mysqli_fetch_array($r,MYSQLI_NUM)) {
$strArr[] = $qianzhui.$task;
//拼接查詢條件
$where = "parent_id = ".$task_id;
//遞歸查詢
findArr($where,++$deep);
}
}
findArr();
//打印縮進(jìn)數(shù)組
echo "pre>";
print_r($strArr);
echo "/pre>";
?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結(jié)》及《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- PHP實(shí)現(xiàn)無(wú)限極分類的兩種方式示例【遞歸和引用方式】
- PHP超牛逼無(wú)限極分類生成樹(shù)方法
- PHP實(shí)現(xiàn)無(wú)限極分類圖文教程
- php無(wú)限極分類實(shí)現(xiàn)的兩種解決方法
- ThinkPHP菜單無(wú)極分類實(shí)例講解