我正在爲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"];
?>
然後再次沒有運氣。理論上不應該這樣工作?
調試與'的print_r($ _ SESSION)'。你會看到結構。你不應該做'$ _SESSION ['Products'] = $ products;''_before_你已經填充了'$ products'數組。之後這樣做,因爲數組不是通過PHP中的引用分配的。 – 2013-05-12 02:54:58