as we know, in php, we can use session_encode() and session_decode() to encode/decode the session data, but, if you have tried these two 
   functionality, you will see the they are not going as you think. so here, i find these two functionality which will help you to do that.
/* *     
     * serialize session     
     *      
     * @param array $data     
     * @param boolean $safe     
     * @return string      
      */     
     function serialize_session( $array,  $safe =  true)     
    {     
         //  the session is passed as refernece, even if you dont want it to     
         if ( $safe)     
        {     
             $array =  unserialize( serialize( $array));     
        }
$raw = '';     
         $line = 0;     
         $keys =  array_keys( $array);     
         foreach ( $keys  as  $key)     
        {     
             $value =  $array[ $key];     
             $line++;     
             $raw .=  $key . '|';     
             if ( is_array( $value) &&  isset( $value['huge_recursion_blocker_we_hope']))     
            {     
                 $raw .= 'r:' .  $value['huge_recursion_blocker_we_hope'] . ';';     
            }     
             else     
            {     
                 $raw .=  serialize( $value);     
            }     
             $array[ $key] =  array('huge_recursion_blocker_we_hope' =>  $line);     
        }
return  $raw;     
    }
/* *     
     * unserialize session     
     *      
     * @param string $data     
     * @return array      
      */     
     function unserialize_session( $data)     
    {     
         $vars =  preg_split('/([a-za-z_\x7f-\xff][a-za-z0-9_\x7f-\xff^|]*)\|/',  $data, -1, preg_split_no_empty | preg_split_delim_capture);     
         for ( $i = 0;  $vars[ $i];  $i++)     
        {     
             $result[ $vars[ $i++]] =  unserialize( $vars[ $i]);     
        }     
         return  $result;     
    }
   
 
   