Pues es posible ..
Piensa en una "sesión" como un simple contenedor de variables (de cualquier tipo) .. crea tu array/modificala y luego la vuelcas a tu variable de sesión común .. que a su vez esta va "montada" en un array (si usas los arrays superglobales):
uno.php
Código PHP:
<?
session_start();
// defines tu array ..
$mi_array=array("pepe","juan");
// (podría ser tambien: $_SESSION['nombres'][0]='pepe' .. $_SESSION['nombres'][1]='juan'
// Y lo guadas en una variable de sesión (mejor dicho en un indice del array de sesiones). en ese caso ese tal "nombres" será de tipo
$_SESSION['nombres']=$mi_array;
//para el ejemplo ... redireccionamos a dos.php donde leeremos el array creado
header ("Location: dos.php");
exit;
?>
dos.php
Código PHP:
<?
session_start();
// Para que quede "claro" .. re-asignamos a $mi_array el valor de tu variable en la sesión (indice) y .. trabajamos en nuestro array de la forma habitual.
$mi_array=$_SESSION['nombres'];
// Ejemplo .. recorremos el array.
foreach ($mi_array as $nombre){
echo $nombre."<br>";
}
?>
Así de simple .. No es necesario serializar tu array ni nada más extra.
Un saludo,