无限极分类管理的结果处理中为了方便信息展示,用查找指定的分类的下级属性(包含下级分类,下级分类的内容)。
结合之前的文章,得到数据库中的所有数据(放入数组中),对数组进行遍历,逐个逐级查找,直到遍历完整个数组。
在整个遍历过程中,会遇到以下2个情况:
1、 所查找的元素为一个分类(该分类下面没有内容也就是文章);
2、所查找的元素是一个包含内容的分类—–是一个实体(包含至少一个,一个文章)。
在上述结构下可以得到一个关联数组:
array(
[
'type' =>[],//下属分类
'art' =>[] //下属内容
]
)
php代码
//php
function getSubTA( $id , $arr = array() , $art = array() , $type = array() )
{
if( is_array( $arr ) && is_int( $id ) )
{
//定义
$result = array();
$result['type'] = array();
$result['art'] = array();
//查找
foreach( $arr as $k => $value )
{
//遍历
if( $value['pid'] == $id )
{
if( isset( $value['sub'] ) )
{
//类型
$type[$k] = $value;
}
else
{
//元素
$art[$k] = $value ;
}
}
else
{
if( isset( $value['sub'] ) )
{
//遍历子类型
getSubTA( $id , $value['sub'] ,$art , $type );
}
else
{
//元素,进入下次循环
}
}
}
//循环结束,返回结果
$result['type'] = $type;
$result['art'] = $art;
return $result ;
}else
{
return false;
}
}
运行一个示例:
结果如下