multi dimension session array

☆樱花仙子☆ 提交于 2019-12-11 06:13:34

问题


I am using a form that is pulling data from two MySQL databases into a single dynamic page. When a user clicks add to cart I want to store that data in a multi dimensional session array to call up later when they click view cart. I am wondering how to auto increment the subset identifier(array key?) of the item when a new item is added from the add to cart form. This is what I have so far:

$newitem = array ($row_getimages['icon'],$row_getimages['title'],$row_getshoppingcart['medium'],$row_getshoppingcart['size'],$row_getshoppingcart['price'],$row_getshoppingcart['shipping']);


session_start();

if(isset($_SESSION['item'][1]))
$_SESSION['item'][1] = $_SESSION['item'][1]+ 1;
else
$_SESSION['item'][1] = 1;

Also any help for calling out the data later would be appreciated. As a user may have 1 or 20 items stored in the session I am not sure how to make sure all items would be echoed no matter how many they have added.

This is my first time at a multi dimensional array and sessions. Obviously because the image page is dynamic and purchase price is based on several factors, just using a MySQL database of available items as I have in the past is out of the question.

Thank you in advance for your time.


回答1:


$newitem = array ('id' => $row_getshoppingcart['id'] , 'icon' => $row_getimages['icon'],'title' => $row_getimages['title'],'medium' => $row_getshoppingcart['medium'],'size' => $row_getshoppingcart['size'],'price' => $row_getshoppingcart['price'],'shipping' => $row_getshoppingcart['shipping']);


session_start();

$_SESSION['item'][] = $newitem;

That is all you have to do, if I understand your system correctly.

UPDATE

I updated the $newitem array to include array keys. You can reference the new item info with arrays like this:

$_SESSION['item'][(num)]['id']

Or you can loop through the results like this:

foreach ( $_SESSION['item'] AS $item ) 
{  
 echo 'id: ' . $item['id'] . '<br />'; 
 echo 'title: ' . $item['title'];  
 // and so on 
}



回答2:


If it is not important for the numbers to be sequential, you can use:

$_SESSION['item'][] = array('a','b','c','d','e','f');

Using [] will simply add a new element to the end of the array.

However, I would probably use a product ID for the key.



来源:https://stackoverflow.com/questions/13688071/multi-dimension-session-array

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!