Il tuo dubbio è del tutto infondato. Non c'è nessuna controindicazione a fare quello che stai facendo.
Se non funziona c'è qualcos'altro che non va.

Dove la fai la visualizzazione a video? Falla dopo l'assegnazione all'array. E stampa a video anche ciò che hai assegnato all'array...
Codice PHP:
$chart 'chart_data' ][ ][ ] = $val4;
echo 
'$val4 = ' $val4'
'
'$chart = ' $chart 'chart_data' ][ ][ ], '
'
gettype($val4);