在web开发当中,我们经常会遇到无限级分类,既中国有北京、天津、河北、河南等省(自治区、直辖市),河北有石家庄、张家口、唐山等地级市,石家庄又有正定县、无极县,正定县又有。。。。
实现这种无限级分类,我们只需要在字段中增加一个pid,用于记录父类的id,这时候我们就可以采用递归的方式得到最终的结果,这里面有两种处理方式,一种是得到一个二维数组,一种是得到一个多维数组。具体代码如下:
/*由父类得到全部子类,得到一个二维数组*/
function getChildren2($list,$pid=0){
static $arr = array();
foreach ($list as $key => $value) {
if ($value['pid']==$pid) {
$arr[] = $value;
getChildren2($list,$value['id']);
}
}
return $arr;
}
function getChildren($list,$pid=0){
$arr = array();
foreach ($list as $key => $value) {
if ($value['pid']==$pid) {
$value['children']=
getChildren($list,$value['id']);
$arr[] = $value;
}
}
return $arr;
}