我正在为php会话创建多维数组。以下是代码:
<?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"的
我想要的是这样的东西:
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 =
我的问题是,在我的例子中,从多维数组中回显数据的正确方法是什么?
谢谢
编辑的
好的,我修改了我的代码如下:
<?php
session_start();
$_SESSION['Products']= array("Brand"=>"Adidas");
echo "Product Name = ". $_SESSION['Products']["Brand"];
?>如果我只这样做,它就会打印Product Name = Adidas
然而,如果我这样做:
<?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"];
?>再说一次没有运气。但从理论上讲,这不应该奏效吗?
发布于 2013-05-12 02:57:44
1)更改赋值顺序
$products[] = array("Brand"=>$_POST['Brand']);
$_SESSION['Products'] = $products;而不是
$products[] = array("Brand"=>$_POST['Brand']);
$_SESSION['Products'] = $products;2)更正会话变量
$_SESSION['Products'][0]["Brand"]而不是
$_SESSION['Products'][$products][0]["Brand"]__:以下是您更新后的问题的解决方案:
$_SESSION['Products'][] = array("Brand"=>"Adidas");
$_SESSION['Products'][] = array("Brand"=>"Puma");
echo "Product Name = ". $_SESSION['Products'][0]["Brand"];
echo "Product Name = ". $_SESSION['Products'][1]["Brand"];发布于 2013-05-12 02:55:30
您应该更改这两条语句的顺序:
$_SESSION['Products'] = $products;
$products[]= array("Brand"=>$_POST['Brand']);现在将空数组分配给$_SESSION['Products'],在向$products变量添加值时不会更新该数组。
所以:
$products[]= array("Brand"=>$_POST['Brand']);
$_SESSION['Products'] = $products;https://stackoverflow.com/questions/16503740
复制相似问题