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