Ma come scrivi tu ($tabella[$dim1[$i]][$dim2[$i]] = $qta[$i]allora non è corretto! Tu crei un array multidimensionale a due livelli con un unico valore!
Da quello che ho capito $dim1, $dim2 e $qta sono tre valori diversi da assegnare ad altrettante variabili contenute all'interno dell'array. Se così dovesse essere il codice da usare dovrà essere necessariamente quello che ti ho esposto sopra e non quello utilizzato da te!
Infatti il valore del tuo array ($tabella[$dim1[$i]]) sarà [$dim2[$i]] e il valore di quest'ultimo sarà $qta.
In pratica tu utilizzi i valori di $dim1 e $dim2 come chiavi dell'array quando invece le chiavi devono essere dei nomi.
L'array alla fine dovrà risultare in questo modo:
$array[$i]['dim1'] = $dim1;
$array[$i]['dim2'] = $dim2;
$array[$i]['qta'] = $qta;
Anche perchè con il tuo metodo sarà pressocchè impossibile utilizzare l'array se non conoscendo a priori il valore di $dim1 e $dim2.
Non so se sono stato molto chiaro. Se così non fosse dimmelo che cerco di spiegarti meglio.