我有一個購物車的會話變量爲:'cart_b_1_1'。如何按元素檢查和取消設置/設置SESSION?
字符串中的字母表示一個類別,整數表示用戶標識&產品ID。
如何檢查已設置的SESSION var的類別以查看它是否與新選擇的類別匹配?
我想確保如果一個項目被添加到SESSION數組中,並且有一個已經存在的相同類別字母的變量,那麼它將被取消設置並有效地替換爲新的選擇。這是爲了將選擇按類別限制爲一個。
感謝您的幫助提前。
我有一個購物車的會話變量爲:'cart_b_1_1'。如何按元素檢查和取消設置/設置SESSION?
字符串中的字母表示一個類別,整數表示用戶標識&產品ID。
如何檢查已設置的SESSION var的類別以查看它是否與新選擇的類別匹配?
我想確保如果一個項目被添加到SESSION數組中,並且有一個已經存在的相同類別字母的變量,那麼它將被取消設置並有效地替換爲新的選擇。這是爲了將選擇按類別限制爲一個。
感謝您的幫助提前。
你應該考慮什麼關聯數組讓你做的迷死advantange:
$_SESSION['categories'][$mycat] = array($user_id, $product_id);
,只要你設置一個新的類別將覆蓋最後一個辦法。不知道爲什麼你需要的user_id
在這一水平,假設整個車屬於一個用戶,我的會話看起來像:
array(
'user' => $user_id,
'cart' => array('catid' => 'prodid', 'catid2', 'prodid2'))
);
不知道爲什麼我downvoted ... –
感謝您的評論,我如何在$ _SESSION ['categories'] [$ mycat] = array($ user_id,$ product_id)$ mycat數組中選擇$ user_id? – user1337603
您應該使用3個變量而不是1
$_SESSION['category'] = 'cart_b';
$_SESSION['user_id'] = 1;
$_SESSION['product_id'] = 1;
但只是一般 - 你可以用'_'分隔符將字符串轉換爲數組。
$varArray = explode('_', $_SESSION['var']);
缺少第1行的單引號 – Gntem
是的,補充說。謝謝 –
使用_分解會話變量並檢查第一個元素以找到類別。
$ myarray = explode(「_」,$ _ SESSION ['yourvariablename']);
然後你$ myarray [1]是類別,所以你可以比較和做其他的東西。
這是你想要的嗎?
您可以在會話中擁有多個值。爲什麼不爲每個值(類別,用戶標識,產品ID)使用變量? – CodeZombie
遍歷$ _SESSION的array_keys,如果找到preg_matches/cart_x_ \ d_ \ d /的關鍵字,則分配新值;否則添加一個新的會話變量。或者,你爲什麼不把它們存儲爲'$ _SESSION [「cart」] [「b」] [1] [1]'? –