Reputation: 91
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!
Upvotes: 0
Views: 4372
Reputation: 65
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]);
}
Upvotes: 2
Reputation: 26153
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);
Upvotes: 3