0

I am currently attempting to create a add to cart and remove from cart function for my website. Currently, I am storing the user's information in a session variable name shopping cart. print_r that session variable as the following format was returned to me:

Array
(
    [0] => Array
        (
            [productID] => 3
            [productTitle] => Life Without Limits
            [productAuthor] => Nick Vujicic
            [productImg] => nickvujicic/lifewithoutlimits
            [productPrice] => 38.00
        )

    [1] => Array
        (
            [productID] => 4
            [productTitle] => Stand Strong
            [productAuthor] => Nick Vujicic
            [productImg] => nickvujicic/standstrong
            [productPrice] => 25.00
        )
)

I was able to get the add to cart function working, but I'm currently stuck at the remove from cart function. When a user clicks on the remove button, that particular productID will be sent via ajax to my php file, and from there I would like to remove the product array from the shopping cart array. For example, if I want to remove a product with productID = 3, the shopping cart array should only return:

Array
(
    [0] => Array
        (
            [productID] => 4
            [productTitle] => Stand Strong
            [productAuthor] => Nick Vujicic
            [productImg] => nickvujicic/standstrong
            [productPrice] => 25.00
        )
)

How do I go about achieving this? Thank you for your help in advance!

2 Answers 2

3

It's not tested

foreach ($arr as $k => $item) {
    if ($item['productID'] == $productID) {
          unset($arr[$k]);
          break;
    }
} 

If you want to restore indexes after removing item

$arr = array_values($arr);
Sign up to request clarification or add additional context in comments.

Comments

2

If you are using (PHP 5 >= 5.5.0) you can use the below simple method to get the key and unset the item from the shopping cart array.

$key = array_search(4, array_column($arr, 'productID'));
if(!empty($key)){
    unset($arr[$key]);
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.