将数组添加到会话数组
问题描述:
我有一个ID数字的MySQL查询数组,我尝试将其添加到已创建的会话数组中。出于某种原因,我的代码已经在Session Array中添加了一个数组,而不仅仅是将ID号添加到Session中。是什么导致了这种情况发生?将数组添加到会话数组
这是我的PHP ...
//Find members of this group and create an array to add to cart
$deletedgroupmembersquery = "SELECT * FROM groupmember WHERE group_id='$groupid'";
$deletedgroupmembers = mysql_query($deletedgroupmembersquery) or die('SQL Error :: '.mysql_error());
if (mysql_num_rows($deletedgroupmembers) > 0) {
$groupmembers = mysql_num_rows($deletedgroupmembers);
$cart = array();
while(($deletedmembersrow = mysql_fetch_assoc($deletedgroupmembers))) {
$cart[] = $deletedmembersrow['contact_id'];
}
//Add the array to the cart session
if (isset($cart)) {
$_SESSION['cart'] = array();
array_push($_SESSION[cart],$cart);
} else {
}
这里是上面的代码创建会话..
Array ([cart] => Array ([0] => Array ([0] => 1362 [1] => 1371 [2] => 2241))
感谢您的帮助。
答
您将$ cart定义为一个数组,然后将它推入$ _SESSION [cart]中...所以您将数组推入数组中。尝试是这样的:
if (!empty($cart)) {
$_SESSION['cart'] = array();
foreach ($cart AS $item) {
array_push($_SESSION['cart'], $item);
}
}
你也可以放置array_push你而内(),和前一阵贴$ _SESSION [“购物车”] =阵列()(),它会实现一样。
你的建议完美的工作,除了它取代了已经存在的数组。我如何将数组添加到购物车数组中已有的值? – Budove 2013-03-14 02:16:20
如果$ _SESSION ['cart']里面已经有值,则删除$ _SESSION ['cart'] = array()行。这只是覆盖无论它可能已经是一个空的数组。 array_push会将新元素推送到数组的末尾,而不管数组中可能已有的元素。 – mchitten 2013-03-14 02:19:07