Я пытаюсь сбросить строку в многомерном массиве на основе нахождения одного из значений (код продукта)
Вот несколько упрощенная структура / содержимое массива:
Array ([0] => Array ( [item_id] => code1 [item_desc] => first product [item_price] => 5.45 )
[1] => Array ( [item_id] => code2 [item_desc] => second product [item_price] => 9.25 ))
Следующее работает нормально, за исключением попыток удалить первый элемент [0] в массиве - поэтому первый элемент в корзине удалить нельзя.
$pid = 'code2';
$key = array_search($pid, array_column($_SESSION['cart_array'], 'item_id'));
if($key) {
unset($_SESSION['cart_array'][$key]);
sort($_SESSION["cart_array"]);
}
Где значение $ pid= 'code1', $ key возвращает false, а содержимое переменной сеанса остается неизменным
Я попытался использовать цикл foreach, который найдет значение, но мне не удалось вернуться к ключу
foreach ($_SESSION['cart_array'] as $search)
{
if($pid == $search['item_id'])
{
echo key($search); // returns item_id
}
}
Любая помощь высоко ценится.