2012-01-13 40 views
0

我似乎無法讓CI的會話庫以我想要的方式工作。本質上,我在會話中存儲2種不同類型的數據。這兩個類別中的數據可能包含相同的值。現在,我嘗試向會話添加一個key => value對,因爲它只允許1個key =>值對與該數組關聯。每次我發佈帖子時都會覆蓋自己。我是否需要爲CodeIgniter編寫自定義會話類?

$arr = array(
    'favorite_products' => array(), 
    'viewed_products' => array() 
    ); 


$arr["favorite_products"][] = $fav_id; 


$this->session->set_userdata($arr); 

這是陣列的外觀,當我print_r它:

Array ([favorite_products] => Array ([4f1066c2b7fff] => 1648406) [viewed_products] => Array ()) 

難道我做錯了什麼,或者這只是方式CI的會話庫的工作方式?

+0

您的預期產出是什麼? – jondavidjohn 2012-01-13 17:24:05

+0

Array([favorite_products] => Array([0] => 1648406 [1] => 0000000)用戶可以擁有多少種fav產品沒有限制 – 2012-01-13 17:24:43

+0

添加另一個'$ arr [「favorite_products」] [] = 0333'並更新你的輸出,看起來像你仍然在顯示'uniqueid()'輸出 – jondavidjohn 2012-01-13 17:26:18

回答

1

確保你摧毀嘗試之間的會話,但是這個代碼應該只是罰款...

$arr = array(
    'favorite_products' => array(), 
    'viewed_products' => array() 
    ); 


$arr["favorite_products"][] = $fav_id; 
$arr["favorite_products"][] = 033333; // another id 


$this->session->set_userdata($arr); 

應該給你...

Array ( 
    [favorite_products] => Array ( 
     [0] => 1648406, 
     [1] => 033333 
    ), 
    [viewed_products] => Array() 
) 

如果你正在嘗試做的這請求之間...

// if it doesn't already exist in the session, create an empty array. 
if(! ($favorite_products = $this->session->get_userdata("favorite_products"))) 
{ 
    $favorite_products = array(); 
} 

$favorite_products[] = "new id or info"; 

$this->session->set_userdata("favorite_products", $favorite_products); 
相關問題