无限分类是指从一个最高的分类开始,每个子类又可以划分为自己的若干个子类,可以连续划分,称为无限分类;下面是无限分类省市县的例子。数据库如图:代码示例如下:/***@Description:Infinitusclassification1*@Author:Yang*@param$datadatabasedata*@paramint$parent_idparentID*@returnarray*/functiongetTree1($data,$parent_id=0){$tree=array();foreach($dataas$k=>$v){如果($v["parent_id"]==$parent_id){unset($data[$k]);如果(!empty($data)){$children=getTree1($data,$v["id"]);如果(!empty($children)){$v["_child"]=$children;}}$树[]=$v;}}return$tree;}/***@Description:Infinitusclassification2*@Author:Yang*@param$data数据库数据*@paramint$parent_id父ID*@paramint$levellevel*@returnarray*/函数getTree2($data,$parent_id=0,$level=0){static$tree=array();foreach($dataas$k=>$v){if($v["parent_id"]==$parent_id){$v["level"]=$level;$树[]=$v;getTree2($data,$v["id"],$level+1);}}return$tree;}/***@Description:无限分类三:面包屑导航*@作者:Yang*@param$data数据库数据*@param$id类别ID*@returnarray*/functiongetCrumbsBar($data,$id){static$tree=array();foreach($dataas$k=>$v){if($v["id"]==$id){getCrumbsBar($data,$v["parent_id"]);}$树[]=$v;}}返回$tree;}
