è un semplice algoritmo per percorrere un albero.

non ricordo bene l'algoritmo ma spero che questo possa essere una base per te:

codice:
/* struttura albero:
  value = valore del nodo
  child1 = puntatore al primo figlio
  child2 = puntatore al secondo figlio
*/
function percorri($tree) {
   print $tree['value'];
   if(isset($tree['child1']))
      percorri($tree['child1']);
   if(isset($tree['child1']))
      percorri($tree['child2']);
}
se un nodo può avere più figli fai un ciclo