PHP - array_push正在替换而不是添加到SESSION Variable

时间:2016-02-18 15:07:29

标签: php arrays session session-variables

user_id

<?php session_start(); $pid = $_GET['pid']; $ptype = $_GET['ptype']; $_SESSION = array(); $_SESSION['cart_items'] = array(); if (isset($_GET['add_cart']) && !empty($_GET['add_cart'])) { // Add new data to Session var $newdata = array($pid , $ptype, 1 ); array_push($_SESSION['cart_items'], $newdata); } echo '<pre>'; var_dump($_SESSION); echo '</pre>'; ?> array_push中已有的数据替换为$_SESSION中的$newdata变量,而不是将其添加。

例如:

我输入了网址:$_SESSION 阵列看起来像这样:

?pid=1&ptype=CH-&add_cart=Add+to+Cart

太棒了。但当我输入另一个网址时:array(1) { ["cart_items"]=> array(1) { [0]=> array(3) { [0]=> string(1) "1" [1]=> string(3) "CH-" [2]=> int(1) } } } 该数组如下所示:

?pid=1&ptype=CPU-&add_cart=Add+to+Cart

而不是:

array(1) {
  ["cart_items"]=>
  array(1) {
    [0]=>
    array(3) {
      [0]=>
      string(1) "1"
      [1]=>
      string(4) "CPU-"
      [2]=>
      int(1)
    }
  }
}

它取代了Session中已有的数据。我希望它添加到它。我该怎么做?

提前致谢!

1 个答案:

答案 0 :(得分:2)

更改第5行和第6行
$_SESSION = array();
$_SESSION['cart_items'] = array();

// $_SESSION = array();
// $_SESSION['cart_items'] = array();

array_push没有清除您的数据。这两行是在每次加载页面时清除会话数据。