rendered paste body$arrCategoryTree = array();
while ($result_row = mysql_fetch_row($objRS)) {
$arrCategoryTree[] = array (
'category_id' => $result_row[0],
'parent_category_id' => $result_row[1],
'category_name' => $result_row[2]
);
}
//var_dump ($arrCategoryTree);
function tree($id_parent = 0, $indent = 0)
{
global $arrCategoryTree, $ret_tree;
$tt = array();
$x = 0;
$loop = 0;
foreach($arrCategoryTree as $n)
{
if( $n['parent_category_id'] == $id_parent)
{
$tt[$x++] = $loop;
}
$loop++;
}
/*-- if there are some parent ids --*/
if( $x != 0){
foreach($tt as $d)
{
$tmp = array();
foreach($arrCategoryTree[$d] as $key => $value)
{
$tmp[$key] = $value;
}
$tmp['indent'] = $indent;
$ret_tree[] = $tmp;
tree($tmp['category_id'], $indent+1);
}
}
else
{
return;
}
}
$ret_tree = array();
tree(0,0);
foreach($ret_tree as $cat)
{
$indent = '';
$indent .= str_repeat ("\t", $cat['indent']);
if ($intPreviousIndent <= $cat['indent'])
echo ("</category>\n");
echo ($indent . $cat['category_name']);
//target structure
/*
<category name="rootfolder" id="0">
<category name="folder1" id="1"/>
<category name="folder2" id="2">
< category name="subfolder2.1" id="3"/>
</category >
</category >
*/
$intPreviousIndent = $cat['indent'];
}
//var_dump($ret_tree);