展开全部
不用搜索, 直接排序插入即可. 此处列出基本思路, 代码您自己实现, 应该没难度的.
从数据库查询记录, 并按 pNid 正序排列;
在内存中, 构造出 tree 结构; 这个php 循环一趟即可. 譬如
$rootNode=array();
for ($i=0;$i<$count;$i++) {
$node=array("pid"=>$pid, "nPid"=>$nPid,...,....); //构造节点
$node["children"] = array(); // 子节点
$parent = searchParent($rootNode, $nPid);
$parent["children"][] = $node; // 连接到父节点;
}
funciton searchParent($root, $nPid) {
global $rootNode;
// 递归查找父节点.
if ($root["pid"] == $nPid) {
return $root;
}else{
if (isset($root["children"]) {
for ($child as $root["children"]) {
if ($child["pid"]==$nPid) {
return $child
}
}
return $rootNode;
}
3. 递归构造树, 这个应该简单一些了.
这个算法没优化, 你先暂时实现后再考虑优化.
更多追问追答
追问
没看懂 能用表里的 nid name pNid写下程序么 帅哥
追答
x, 晚上回家我帮你直接实现, 多大事啊. 下班先.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询