首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多维会话数组中插入和回送元素

在多维会话数组中插入和回送元素
EN

Stack Overflow用户
提问于 2013-05-12 02:51:01
回答 2查看 1.8K关注 0票数 2

我正在为php会话创建多维数组。以下是代码:

代码语言:javascript
复制
    <?php
    session_start();
    // store session data

    $products = array();
    $_SESSION['Products'] = $products;

    $products[]= array("Brand"=>$_POST['Brand']);

    //retrieve session data
    echo "Product Name = ". $_SESSION['Products'][$products][0]["Brand"];

    echo "Product Name = ". $products[0]["Brand"];

    ?>

$_POST['Brand']可以是任何类似于"Adidas"

我想要的是这样的东西:

代码语言:javascript
复制
Array Session 'Products'

   Array '$products'

     Sub-Array 'array'
           (
               "Brand" => "Adidas"
           )

     Sub-Array 'array'
           (
               "Brand" => "Nike"
           )

     Sub-Array 'array'
           (
               "Brand" => "Puma"
           )

诸若此类。

现在echo "Product Name = ". $products[0]["Brand"];给了我Product Name = Adidas

echo "Product Name = ". $_SESSION['Products'][$products][0]["Brand"];给了我Product Name =

我的问题是,在我的例子中,从多维数组中回显数据的正确方法是什么?

谢谢

编辑的

好的,我修改了我的代码如下:

代码语言:javascript
复制
    <?php
    session_start();
    $_SESSION['Products']= array("Brand"=>"Adidas");

    echo "Product Name = ". $_SESSION['Products']["Brand"];
    ?>

如果我只这样做,它就会打印Product Name = Adidas

然而,如果我这样做:

代码语言:javascript
复制
    <?php
    session_start();
    $_SESSION['Products']= array("Brand"=>"Adidas");
    $_SESSION['Products']= array("Brand"=>"Puma");

    echo "Product Name = ". $_SESSION['Products'][0]["Brand"];
    echo "Product Name = ". $_SESSION['Products'][1]["Brand"];
    ?>

再说一次没有运气。但从理论上讲,这不应该奏效吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-12 02:57:44

1)更改赋值顺序

代码语言:javascript
复制
$products[] = array("Brand"=>$_POST['Brand']);
$_SESSION['Products'] = $products;

而不是

代码语言:javascript
复制
$products[] = array("Brand"=>$_POST['Brand']);
$_SESSION['Products'] = $products;

2)更正会话变量

代码语言:javascript
复制
$_SESSION['Products'][0]["Brand"]

而不是

代码语言:javascript
复制
$_SESSION['Products'][$products][0]["Brand"]

__:以下是您更新后的问题的解决方案:

代码语言:javascript
复制
$_SESSION['Products'][] = array("Brand"=>"Adidas");
$_SESSION['Products'][] = array("Brand"=>"Puma");

echo "Product Name = ". $_SESSION['Products'][0]["Brand"];
echo "Product Name = ". $_SESSION['Products'][1]["Brand"];
票数 1
EN

Stack Overflow用户

发布于 2013-05-12 02:55:30

您应该更改这两条语句的顺序:

代码语言:javascript
复制
$_SESSION['Products'] = $products;

$products[]= array("Brand"=>$_POST['Brand']);

现在将空数组分配给$_SESSION['Products'],在向$products变量添加值时不会更新该数组。

所以:

代码语言:javascript
复制
$products[]= array("Brand"=>$_POST['Brand']);

$_SESSION['Products'] = $products;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16503740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档