[英]Store , Show and Delete items in session array
我正在嘗試將注冊的產品ID會話保存在數組中,並使用ID從會話數組中刪除任何產品,但是當我發布新產品時,它只能保存一個並替換它。 我已經在網上搜索過,但仍然找不到能幫助我解決此問題的方法。
<?php
session_start();
//Saving session
if(!empty($_SESSION["items"])){
$_SESSION["items"] = array();
$_SESSION["items"][] = $_POST['product_id'];
}else{
$_SESSION["items"] = $_POST['product_id'];
}
//Get one session
echo $_SESSION["items"][$_POST['product_id']];
//Delete one session
unset($_SESSION["items"][$_POST['product_id']]);
?>
例子2
<?php
session_start();
$product_id = '300';
$itemID = 'C';
if (!isset($_SESSION['items'])) {
$_SESSION['items'] = array();
$_SESSION['items'][$itemID] = array('code' => $product_id);
}else{
$_SESSION["items"][$itemID][] = $product_id;
}
echo $_SESSION["items"]['A']['code']; // This is not showing anything
var_dump($_SESSION["items"]); // below array is what i get
?>
array(3) { ["A"]=> array(1) { [0]=> string(3) "100" } ["B"]=> array(1) { [0]=> string(3) "200" } ["C"]=> array(1) { [0]=> string(3) "300" } }
請任何人可以協助我解決這個問題
如果會話中沒有項目,則將其保存在$ _SESSION ['items']中。 當其中有一項時,您可以創建一個新數組來保存它,並刪除舊值,然后將新項保存到新數組中。
因此,您的會話中只有一個項目或數組,只有一個項目或沒有項目。
只需將if eles語句替換為此,為避免警告,您可以在分配的開始處添加@
,或測試在分配之前是否設置了@。
$_SESSION["items"][] = $_POST['product_id'];
示例代碼:
$product_id = '300';
$itemID = 'C';
if (!isset($_SESSION['items'])) {
$_SESSION['items']=[];
}
$_SESSION["items"][$itemID]['code']=$product_id;
var_export($_SESSION["items"]);
輸出:
array (
'C' =>
array (
'code' => '300',
),
)
每個添加的$product_id
將具有一個code
密鑰。 該子數組將在$itemID
內,這將在$_SESSION
內的items
之內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.