2015-10-06 73 views
0

這裏我試圖從數組中刪除值,在這裏我將action和id傳遞給頁面。我正在檢查值是否已設置,然後執行操作。我想通過值從數組中刪除值。這裏的product_id是我傳遞的值,並且該值必須從數組中移除。如何通過值從數組中刪除值

爲前:action=remove&product_id=22值22必須從陣列

<?php 
    if(isset($_GET['action']) && isset($_GET['product_id'])){ 
     if($_GET['action'] == "add"){ 
      $product_id = $_GET['product_id'];    
      $_SESSION['cart'][] =$product_id; 
     } 

     if($_GET['action'] == "remove"){ 
      unset($_SESSION['cart'][$product_id]); 
      echo "product_remove"; 
     } 
    }  
?> 

我怎麼能做到這一點去掉?

+1

使用'array_search()' – Rizier123

回答

2

AS @Rizier中的評論稱,使用array_search,如下圖所示:

if($_GET['action'] == "remove"){ 
    $key = array_search ($product_id, $_SESSION['cart']); 
    unset($_SESSION['cart'][$key]); 
    echo "product_remove"; 
} 
1

你可以使用array_search($ PRODUCT_ID,$ _SESSION [ '購物車']);

這會讓你找到解鎖的關鍵。 如果您想按照現在的方式取消設置,那麼在添加到購物車時必須將產品ID用作關鍵字。

希望這會有所幫助!

1

你可以使用array_search()作爲Rizier123說,但一個更高性能的方法是使用array_flip和刪除PRODUCT_ID

if($_GET['action'] == "remove"){ 
    unset(array_flip($_SESSION['cart'])[$product_id]); 
    echo "product_remove"; 
} 
3
if ($_GET['action'] == 'remove') { 
    if (array_key_exists($product_id, $_SESSION['cart'])) { 
     unset($_SESSION['cart'][$product_id]); 
     echo 'product_remove'; 
    } 
}