簡體   English   中英

在會話數組中存儲,顯示和刪除項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM