php:树形结构的算法
/堆栈 // $stacki = array(-1); //和堆栈对应,记录堆栈中数据在树中的层次 // $target = array(); // while (0 < count($stack)) // { // $item = array_shift($stack); // $lev = array_shift($stacki); // if (!empty($item)) // { // //在这里把加工过的数据放到target数组 // array_push($target, str_repeat('' '', $lev) . $item); // //$s1 = str_repeat('' '', $lev) . $item; // } // $del = array(); //要从$source中删除的节点 // $ar = array(); //需要添加到堆栈中的节点 // foreach ($source as $key=>$val) // { // //寻找匹配的子节点 // if (empty($item)) // { // $find = empty($source[$key][''parent'']); // } // else // { // $find = ($item == $source[$key][''parent'']); // } // if ($find) // { // array_unshift($ar, $source[$key][''role'']); // $del[] = $key; // } // } // foreach ($ar as $val) // { // array_unshift($stack, $val); // array_unshift($stacki, $lev + 1); // } // foreach ($del as $val) // { // unset($source[$val]); // } // echo(implode('', '', $stack) . ''<br />'' . implode('', '', $stacki) . ''<br />'' . implode('', '', $target) . ''<br /><br />''); // } // debug_array(); // } // else // { // echo(''<center>没有检索到数据</center>''); // } //另外一种显示方式,用数组作为堆栈,B: 压栈时存数组索引,出栈并使用完后再删除source |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |