Я пытаюсь удалить из сеанса продукт, основанный на его ха sh, а не на его идентификаторе, у меня есть несколько продуктов с одинаковым идентификатором, и проблема заключается в том, когда я удаляю продукт из корзины, все остальные, содержащие тот же идентификатор удаляется и поэтому вместо идентификатора продукта я хочу удалить их через продукт ха sh.
Вот функция, которая предназначена для удаления, которую я хочу изменить вместо идентификатора, который будет на га sh удалить:
public function remove($id, $attributes = [])
{
if (!isset($this->items[$id])) {
return false;
}
if (empty($attributes)) {
unset($this->items[$id]);
$this->write();
return true;
}
$hash = md5(json_encode(array_filter($attributes)));
foreach ($this->items[$id] as $index => $item) {
if ($item['hash'] == $hash) {
unset($this->items[$id][$index]);
$this->write();
return true;
}
}
return false;
}
Вывод сеанса массива:
Array
(
[25] => Array
(
[0] => Array
(
[id] => 25
[qty] => 1
[hash] => 0a3610cb23dba6f6f40f74a1a9e2680a
[attributes] => Array
(
[price] => 60
)
)
)
)