【问题标题】:Adding array to existing $_SESSION array将数组添加到现有 $_SESSION 数组
【发布时间】:2016-05-03 04:55:58
【问题描述】:

我在$_SESSION 中关注了现有数组:

[wishList] => wishList Object
(
[contents] => Array
(
[109] => Array
(
[qty] => 1.0000
)

[89] => Array
(
[qty] => 1.0000
)

[62] => Array
(
[qty] => 1.0000
)

现在我正在尝试像这样向它添加一个新对象:

echo $_SESSION['wishList']->contents = array('60' => array('qty' => '1.0000'));

所以数组看起来像这样:

[wishList] => wishList Object
    (
    [contents] => Array
    (
    [109] => Array
    (
    [qty] => 1.0000
    )

    [89] => Array
    (
    [qty] => 1.0000
    )

    [62] => Array
    (
    [qty] => 1.0000
    )

    [60] => Array
    (
    [qty] => 1.0000
    )

它不像我尝试的那样工作。我的错在哪里?

【问题讨论】:

  • 您是否收到任何类型的错误消息?
  • 不,没有错误信息。
  • @A-2-AI 还没有,我昨天没时间了,但我会在接下来的几个小时内,别担心,如果它有效,我会接受一个作为正确答案: )

标签: php arrays session


【解决方案1】:

试一下:-

array_push($_SESSION['wishList']->contents,array('60' => array('qty' => '1.0000')));

或者试试这个:-

array_push($_SESSION['wishList']->contents[$pid] = array('qty' => '1.0000')); // where $pid = 60;

【讨论】:

  • 这是可行的解决方案,这正是我所需要的。谢谢你。对您的代码进行一点编辑:您在分号前的末尾缺少一个“)”。
  • 我不得不像我首先想到的那样对代码进行更多编辑,但是您的回答使我走上了正轨,这就是它现在的工作方式:array_push($_SESSION['wishList']->内容[$pid] = array('qty' => '1.0000'));
【解决方案2】:
$_SESSION['wishList']->wishList['contents'] = "your new value string or array";

你错过了选择主要对象。

我尝试了一段代码。这对我有用。

session_start();
class newObject {
    var $aProp  = array("type1"=>"test1", "type2"=>"test2");
    function __contruct() {
        return array("type1"=>"test1", "type2"=>"test2");
    }
}
$newObject  = new newObject;
$_SESSION["newObj"] = $newObject;
print_r($_SESSION);
// prints Array ( [newObj] => newObject Object ( [aProp] => Array ( [type1] => test1 [type2] => test2 ) ) ) 
echo "<br>";
$_SESSION["newObj"]->aProp  = array("type3"=>"test3", "type4"=>"test4");
// prints Array ( [newObj] => newObject Object ( [aProp] => Array ( [type3] => test3 [type4] => test4 ) ) )
print_r($_SESSION);

据我说.. 你错过的是指出正确的目标。在你的情况下是$_SESSION['wishList']-&gt;wishList['contents']

【讨论】:

    【解决方案3】:
    $_SESSION['wishList']->contents[60] = array('qty' => '1.0000');
    

    这会更改数组$_SESSION['wishList']-&gt;contents,方法是将索引60 处的值设置为数组。

    【讨论】:

    • 详细说明你的答案肯定会比单个命令行更好地帮助其他人理解。
    猜你喜欢
    • 2011-06-11
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 2013-10-02
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    相关资源
    最近更新 更多