我正在寻找一些帮助来搞清楚PHP中的这个循环。我正在从购物车中删除商品,并且阵列数据存储在$_session['products']
的内部。我遇到的问题是试图让购物车一次删除多个项目。此代码在一次删除一个项目时运行良好。对于多个项目,它有时会复制未删除的项目或删除所有项目,而不是所选项目。在会话变量中删除数组的问题PHP
Array (
[0] => Array ([name] => Another Test
[code] => 8456885345
[qty] => 1
[price] => 893.98)
[1] => Array ([name] => Another Test 2
[code] => 11134455
[qty] => 1
[price] => 3.12)
)
if(isset($_GET["removemp"]) && isset($_GET["return_url"]) && isset($_SESSION["products"]))
{
$product_code = $_GET["removemp"];
$return_url = $_GET["return_url"];
$product_explode = explode(',', $product_code);
foreach($product_explode as $code)
{
foreach ($_SESSION["products"] as $cart_itm)
{
if($cart_itm["code"]!=$code){
$product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$cart_itm["qty"], 'price'=>$cart_itm["price"]);
}
$_SESSION["products"] = $product;
}
}
}
你并不需要遍历数组以删除元素。创建一个您应该保留的索引列表,并将其仅复制到更新向量中。 – fuesika 2014-08-28 07:20:40
你想删除?在你的代码中没有'unset()' – Ghost 2014-08-28 07:21:10
我建议你使用产品id作为'$ _SESSION ['products']'中每个主要元素的'key'。从那里,你可以根据用户输入删除你想要的数量,当然也可以使用'unset()' – Ghost 2014-08-28 07:25:16