gia' segnalato almeno un paio di volte....

probabilmente tu passi l'array come facevo io.

$_SESSION = $array_tuo;

Pare che in questo modo $_SESSION prenda anche le caratteristiche di $array_tuo e perda le sue. Se dichiari globale $array_tuo e riprovi dovrebbe funzionare.

Personalmente ho risolto con un foreach e va bene. Non capisco perche' tu dica che passare i dati con il ciclo non funzioni.