il problema non è la struttura dati, che si può facilmente estrapolare dal database come albero in uno o più array. Il problema qui è banalmente di css/xhtml/javascript, e mi pare calzi poco con php. Nel senso, la rappresentazione del dato esula dal php puro, se trovi un mix di css/html/js che ti crea quello che ti pare data una struttura, allora si può anche pensare come realizzare una classetta sfruttando php.