Удалить элемент из сеанса на основе элемента ha sh in PHP - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь удалить из сеанса продукт, основанный на его ха 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
                        )
                )
        )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...