Ciao a tutti, altro problema con gli array

Codice PHP:
while($record mysql_fetch_array($query)) {
  
$array[]=array($record['macro'],$record['categoria']);
}

print_r($array);

//stampa questo:
Array (
[
0] => Array ( [0] => Libri [1] => Giallo )
[
1] => Array ( [0] => Libri [1] => Fantasy )
[
2] => Array ( [0] => Libri [1] => Cucina )
[
3] => Array ( [0] => Riviste [1] => Settimanali )
[
4] => Array ( [0] => Riviste [1] => Quindicinali )
[
5] => Array ( [0] => Riviste [1] => Mensili )

In pratica ho un array con all'interno diversi array che hanno macrocategoria e categoria
Ora vorrei ottenere una cosa tabellare tipo questa:

codice:
----- Libri ----|---- Riviste-----
---- Giallo ----|-- Settimanali --

ecc..
Avevo pensato di generare 2 distinti array, ma come posso raggrupparli tenendo conto che dovrebbero mantenere la macrocategoria per poi stamparla?
È corretta una cosa tipo questa?
Codice PHP:
$array1 = array([Libri] => GialloFantasyCucina);
$array2 = array([Riviste] => SettimanaliQuindicinaliMensili); 
Se sì come faccio ad ottenerla?