我正在尋找一些幫助來搞清楚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