gpt4 book ai didi

php - 如何为存储在 session 中的关联数组添加值?

转载 作者:可可西里 更新时间:2023-11-01 01:13:28 25 4
gpt4 key购买 nike

include('session.php');

$productname = $_GET['productname'];
$productcode = $_GET['productcode'];

$wishlist = array("$productname" => $productcode);

$_SESSION["wishlist"] = $wishlist;

print_r($_SESSION["wishlist"]);

此代码设置为名为“wishlist”的 session 的数组。
问题是 session 正在被替换。如果它已经存在,我想添加到数组中。

那么我怎样才能用新数据更新我的数组。我尝试了以下方法。

$productname = $_GET['productname'];
$productcode = $_GET['productcode'];
$lastsession = $_SESSION["wishlist"];

// CHECK IF SESSION IS EMPTY OR NOT
if(empty($lastsession)) {
$wishlist = array("$productname" => $productcode);
} else {
/*
How Can I Update array ???
*/
}

数组输出是这样的。它关联的不是数字索引。我想要单个数组的结果。不是数组中的数组。

[mobile] => iphone_2

谢谢。

最佳答案

简而言之,你可以这样做(如果我理解正确的话):

$productname = $_GET['productname'];
$productcode = $_GET['productcode'];
$lastsession = $_SESSION["wishlist"];

// CHECK IF SESSION IS EMPTY OR NOT
if(empty($lastsession)) {
$wishlist = array("$productname" => $productcode);
} else {
array_push($wishlist, array("$productname" => $productcode));
}

array_push是一个将信息添加到数组末尾的函数。在本例中,我们使用它将产品数组添加到当前愿望 list 。

另一种简单的解决方案是:

// create a blank array if the session variable is not created
// array_push requires an array to be passed as the first parameter
$wishlist = isset($_SESSION["wishlist"]) ? $_SESSION["wishlist"] : array();
//$wishlist = $_SESSION["wishlist"] ?? array(); // this is for PHP 7+
array_push($wishlist, array("$productname" => $productcode));

// you can then access each product as:
$wishlist["mobile"];

或者将上面代码片段中的第 5 行替换为以下内容:

$wishlist[$productname] = $productcode;

这将使您不必像第 3 行那样创建一个空数组。
array_push 的优势在于您可以一次添加多个产品,例如:

$products = [$productname1 => $productcode1, $productname2 => $productcode2];
array_push($wishlist, $products);

我注意到的一件事是您将 session 设置为 $lastsession 以及使用 $wishlist。尽量避免重复变量。

关于php - 如何为存储在 session 中的关联数组添加值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46522768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com