您的位置:首页 > 产品设计 > UI/UE

第一篇的博客文章

2007-04-19 15:06 267 查看
呵呵.终于学识点用博客啦.以后得闲要写多D文章先得,寻前日开始要写个根据parent_id,inventory_id,inventory_id的mysql查询结果中,生成一个目录树,写佐一日,终于搅点. 需要数据格式为:字段parent_id,inventory_id,并且已经好排序既. /* * write fot Yama */ 主要函数系甘既: //将数据结果转化为数组 function result_to_array($result){ $result_array = array(); while($record = mysql_fetch_array($result,MYSQL_NUM)){ $result_array[sizeof($result_array)] = $record; } return $result_array; } //查找当前目录是否含有子录目 function has_sub_inventory($result_array,$curr_inventory_id){ $subtree = array(); foreach($result_array as $subarray){ if($subarray[0] == $curr_inventory_id){ $subtree[sizeof($subtree)] = $subarray; } } return $subtree; } //用递归查找目录,并生成目录树数组 function search_inventory_for_recursion($result_array,$curr_inventory_id = 0,$invent_class = 0){ static $fulltree = array(); if(!($subinventory = has_sub_inventory($result_array,$curr_inventory_id))){ return false; }else{ $invent_class++; foreach($subinventory as $sub){ $sub[sizeof($sub)] = $invent_class; $fulltree[sizeof($fulltree)] = $sub; search_inventory_for_recursion($result_array,$sub[1],$invent_class); } } if($curr_inventory_id == 0){ return $fulltree; } } 调用时就系甘: sql = "select parent_id,inventory_id,inventory_name from table order by parent_id,inventory_id asc"; $inventory_info = mysql_query($query); //turn to array $inventory_info_array = result_to_array($inventory_info); $result_array= search_inventory_for_recursion($inventory_info_array);//array turn to tree array 最后就会生成结果数组例: parent_id inventory_id inventory_name 0 1 a 0 3 b 0 4 c 3 5 d 5 78 e 转换之后: 0 1 a 1(1表示为根目录) 0 3 b 1 3 5 d 2(2表示为2级目录) 5 78 e 3 0 4 c 1 完.... 算法还是比较粗糙,希望同志们再修改一下. 下次见
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息