Mostrar subcategorías de categoría

Esta función sirve para mostrar las subcategorias de una categoria para una lista de constantes del mismo tipo que traen las AA para su arbol de categorias por default. Se usa como separador de la lista de constantes a la virgulilla ~

Por ejemplo, si la lista de constantes es

People-Gender
People-Children
People-Family

Si uso {alias:category........:f_u:usr_constantes:People}

mostrará Gender, Children, Family

<?php
function usr_constantes ($columns, $col, $param)
#ejem {alias:category........:f_u:usr_constantes:Society}
{
#la lista de constantes es de un nivel y esta formateada como la lista de categorias que viene con las AA por defecto

#formo una cadena con todas las categorias seleccionadas
for ($r=0;$r<count($columns[$col]);$r++)
{
$valor_almacenado =$valor_almacenado.$columns[$col][$r][value]."~";
}

$parametros = split(":",$param); #parametros[0] es el nombre de la función personalizada, no se usa pero hay que extraerla

list($nomfuncion,$palabrabuscada) = $parametros; #obtengo el nombre de la categoria a buscar

$categorias=split("~",$valor_almacenado); #separo las categorias por ~

for ($i=0;$i<count($categorias);$i++) #barrido categoria por categoria seleccionada
{

$subcategorias=split("-",$categorias[$i]); #extraigo las subcategorias de una categoria

for ($j=0;$j<count($subcategorias);$j++) #barrido subcategoria por subcategoria
{

if ($palabrabuscada==$subcategorias[$j]) {

$subcategorias_seleccionadas[]=$subcategorias[$j+1];

}

}

}

if (is_array($subcategorias_seleccionadas)){
$subcategorias_seleccionadas = array_unique($subcategorias_seleccionadas); #eliminamos repetidas
}
for ($k=0;$k<count($subcategorias_seleccionadas);$k++)
{
$listado=$listado.$subcategorias_seleccionadas[$k].",";

}

return trim($listado,","); #Elimina la ultima coma
}?>