访问会话数组数据,删除或更改此数组中的一个变量


accessing session array data, deleting or changing one of the variables within this array

这是我的会话数组:

Array ( [username] => dog@dog.net [tmpPayment] => Array ( [mID] => 48 [item_1_amt] => 35.00 [description] => Student ) ) 

我使用以下代码创建了 ['tmpPayment'] 数组:

$tmpPayArr = array();
$tmpPayArr = array('mID'=>$mID,'item_1_amt'=>'35','description'=>'student');
$_SESSION['tmpPayment'] = $tmpPayArr;

我寻找了三个问题的简单答案:(1)如何将变量添加到[tmpPayment]数组(2)如何更改[tmpPayment]数组中[金额]变量的值(3)如何完全删除[tmpPayment]数组。(4)如何将 ['tmpPayment']['mID'] 的值分配给新的变量$memberID。对于 (3) 我尝试过以下方法,但未成功:

unset($_SESSION['tmpPayment']);

我认为我的主要问题是不了解如何正确引用数组及其变量。

更新:我已经成功地添加并更改了我的 SESSION 变量,如下所示:

$_SESSION['tmpPayment']['item_1_amt'] = $x_amount;
$_SESSION['tmpPayment']['description'] = $x_invoice_num;

这是最佳实践吗?仍然需要帮助 (3)...从上面的会话数组中删除会话变量 ['tmpPayment']。

以下是答案。 如果它们不起作用,请确保在尝试修改 $_SESSION 数组之前调用session_start();

  1. $_SESSION['tmpPayment']['new_key_name'] = 'new value';
  2. $_SESSION['tmpPayment']['item_1_amt'] = 12324;
  3. unset($_SESSION['tmpPayment']);

1:$_SESSION["tmpPayment"]["newVariable"] = "value";

2:$_SESSION["tmpPayment"]["amount"] = "$1.78";

3:为此,您可以将["tmpPayment"]设置为空数组,如下所示: $_SESSION["tmpPayment"] = array();

或将其设置为 null

$_SESSION["tmpPayment"] = null;

我从这个答案中借用了一点:PHP $_SESSION 变量不会取消设置

正如该答案以及有关此问题的其他海报所提到的,请确保在对会话变量执行任何操作之前调用session_start();