Hombre, no me voy a poner a copiar y ejecutar todo ese código :P
Haciendo pruebas, encontré que esto es válido:
Código PHP:
Ver original$_SESSION['id'] = 0;
$_SESSION[$_SESSION['id']]['nombre'] = 'Nombre';
$_SESSION[$_SESSION['id']]['cantidad'] = 'Cantidad';
$_SESSION[$_SESSION['id']]['precio'] = 'Precio';
$_SESSION['id'] = 1;
$_SESSION[$_SESSION['id']]['nombre'] = 'Otro Nombre';
$_SESSION[$_SESSION['id']]['cantidad'] = 'Otra Cantidad';
$_SESSION[$_SESSION['id']]['precio'] = 'Otro Precio';
Lo cual tira:
Código:
array
'id' => int 1
0 =>
array
'nombre' => string 'Nombre' (length=6)
'cantidad' => string 'Cantidad' (length=8)
'precio' => string 'Precio' (length=6)
1 =>
array
'nombre' => string 'Otro Nombre' (length=11)
'cantidad' => string 'Otra Cantidad' (length=13)
'precio' => string 'Otro Precio' (length=11)
Tu problema es que no estás creando el índice 0 de $_SESSION. Fijate bien qué línea y qué archivo te dice, empecemos por ahí.