PHP递归
<?php /** * Mr.xml * 处理无限级分类 */ class Category{ /** * [递归一维数组] * @param [type] $cate [传递一个数组$cate] * @param string $html [标示符] * @param [type] $pid [所属哪个类] * @param [type] $level [等级] * @return [type] [把数组返回出去] */ static public function unlimitedForLevel($cate, $html = '--', $pid = 0, $level = 0, $str = '♩——'){ $arr = array(); foreach ($cate as $v) { if($v['pid'] == $pid){ $v['level'] = $level+1; $v['html'] = str_repeat($html, $level); if( $level != 0){ $v['str'] = $str; } $arr[] = $v; $arr = array_merge($arr, self::unlimitedForLevel($cate, $html, $v['id'], $level+1)); } } return $arr; } /*递归多维数组*/ static public function unlimitedForLayer($cate, $name = 'child', $pid = 0) { $arr = array(); foreach($cate as $v) { if($v['pid'] == $pid) { $v[$name] = self::unlimitedForLayer($cate, $name, $v['id']); $arr[] = $v; } } return $arr; } /*传递一个子分类ID返回所有父级分类*/ static public function getParents($cate, $id) { $arr = array(); foreach($cate as $v) { if($v['id'] == $id) { $arr[] =$v; $arr = array_merge(self::getParents($cate, $v['pid']), $arr);//组合数组 } } return $arr; } /*传递一个父级分类ID求出所有子分类*/ static public function getChilds($cate, $pid = 0) { $arr = array(); foreach($cate as $v) { if($v['pid'] == $pid) { $arr[] = $v['id'];//返回ID如要返回所有只需$V $arr = array_merge($arr, self::getChilds($cate, $v['id'])); } } return $arr; } } ?>
Blog Address :
http://www.cnblogs.com/LoveProgram/
Blog Copyright : 本文以学习、研究和分享为主题,欢迎转载,但必须在文章页面明显位置给出原文链接或注明转载之处!
如果文中出现描述有误的地方还望高手们多多指点,以免误人子弟。如果觉得本文对你的学习和生活有所帮助,不如【推荐】一下!
如果你有更好的建议,欢迎来此 QQ群交流:
最后,再次感谢您耐心的浏览完此篇文章。
Blog Copyright : 本文以学习、研究和分享为主题,欢迎转载,但必须在文章页面明显位置给出原文链接或注明转载之处!
如果文中出现描述有误的地方还望高手们多多指点,以免误人子弟。如果觉得本文对你的学习和生活有所帮助,不如【推荐】一下!
如果你有更好的建议,欢迎来此 QQ群交流:
最后,再次感谢您耐心的浏览完此篇文章。