<?php
/**
* created by phpstorm.
* user: qishou
* date: 15-8-2
* time: 上午12:00
*/
//準備陣列,代替從資料庫中檢索出的資料(共有三個必須欄位id,name,pid)
header("content-type:text/html;charset=utf-8");
$categories = array(
array('id'=>1,'name'=>'電腦','pid'=>0),
array('id'=>2,'name'=>'手機','pid'=>0),
array('id'=>3,'name'=>'筆記本','pid'=>1),
array('id'=>4,'name'=>'台式電腦','pid'=>1),
array('id'=>5,'name'=>'智慧型機','pid'=>2),
array('id'=>6,'name'=>'功能機','pid'=>2),
array('id'=>7,'name'=>'超級本','pid'=>3),
array('id'=>8,'name'=>'遊戲本','pid'=>3),
);
/*********************==非遞迴實現********************====*/
$tree = array();
//第一步,將分類id作為陣列key,並建立children單元
foreach($categories as $category)
//第二步,利用引用,將每個分類新增到父類children陣列中,這樣一次遍歷即可形成樹形結構。
foreach($tree as $key=>$item)
} } 第三步,刪除無用的非根節點資料
foreach($tree as $key=>$category)
}
print_r($tree);
/*********************==遞迴實現********************====*/
$tree = $categories;
function get_attr($a,$pid)
$tree = $v; //將記錄存入新陣列
} }
return $tree; //返回新陣列
} echo "
";
print_r(get_attr($tree,0)); //傳pid值 得到下級下下級的所有層級
得到某一節點下 所有子級 孫級id
$ids = ;
$tree = $this->get_attr($tree,1,$ids);
function get_attr2($a,$pid,&$ids)
$tree = $v; //將記錄存入新陣列
}} return $ids; //返回新陣列
}
得到某一id下的所有子層級id
$tree = m()->query("select * from company_org where company_id = '$company_id'");
$tree = $this->getmenutree($tree,$department_id,$org_level);
//如果有子級則 子級加本級資料
if($tree)else
$sql = "select * from employee where department_id in ($tree)";
$employee_list = m()->query($sql);
function getmenutree($arrcat, $parent_id = 0, $level = 0)
}return $arrtree;
}
PHP無限級分類實現(遞迴 非遞迴)
created by phpstorm.user qishou date 15 8 2 time 上午12 00 準備陣列,代替從資料庫中檢索出的資料 共有三個必須欄位id,name,pid header content type text html charset utf 8 categories...
PHP無限級分類實現(遞迴 非遞迴)
created by phpstorm.user qishou date 15 8 2 time 上午12 00 準備陣列,代替從資料庫中檢索出的資料 共有三個必須欄位id,name,pid header content type text html charset utf 8 categories...
PHP遞迴實現無限級分類
在一些複雜的系統中,要求對資訊欄目進行無限級的分類,以增強系統的靈活性。那麼php是如何實現無限級分類的呢?我們在本文中使用遞迴演算法並結合mysql資料表實現無限級分類。在一些複雜的系統中,要求對資訊欄目進行無限級的分類,以增強系統的靈活性。那麼php是如何實現無限級分類的呢?我們在本文中使用遞迴...