/*
* 递归实现
* 反向获得节点id的父节点
* $id interger 不可以为0
* return array 其父节点数组
*/
function getNodeLever($id)
{
$parents=array();
if (array_key_exists($this->cateArray[$id],$this->cateArray))//它的父节点,在节点树中
{
$parents[]=$this->cateArray[$id];
$parents=array_merge($parents,$this->getNodeLever($this->cateArray[$id]));
}
return $parents;
}
/*
* 递归实现
* 得到id节点的所有后代节点
* $id
* return array 索引=>id,...一维数组(顺序important)
*/
function getChilds($id=0)
{
$childArray = array();
$childs = $this->getChild($id);
foreach ($childs as $child)
{
$childArray[]=$child;
$childArray=array_merge($childArray,$this->getChilds($child));
}
return $childArray;
}
/*
* 得到id节点的孩子节点
* $id
* return array 索引=>id,...一维数组
*/
function getChild($id)
{
$childs=array();
foreach ($this->cateArray as $child=>$parent)
{
if ($parent==$id)
{
$childs[]=$child;
}
}
return $childs;
}
/*
* 递归实现
* 得到id下的子树结构数组(用多维数组格式来表示树)
* id Internet 节点id (0表示的是根节点,是虚拟的,即没有与它对应的实际信息)
* return array 子树节点数组
*/
function getChildsTree($id=0)
{
$childs=array();
foreach ($this->cateArray as $child=>$parent)
{
if ($parent==$id)
{
$childs[$child]=$this->getChildsTree($child);
}
}
return $childs;
}