На моей странице у меня есть флажок, пользователь может выбрать checbox и перейти на страницу сравнения. Для этого я использую сеанс, сохраните выбранный флажок id.
Пользователь может вернуться на страницу, где он находитсяснова установите флажок и выберите другое.
Проблема с этим выбором, у нас могут быть одинаковые продукты id, выбранные во время сеанса.
ex first action
id = 1
id = 2
id = 3
goна выбранную страницу сравнения
второе действие
id = 2
id = 4
id = 5
третье действие
id = 2
id = 4
id = 6
Для удаления идентификатора я использую этот код:
$products_id = HTML::sanitize($_POST['products_id']);
if (is_array($_SESSION['productsCompare']) && isset($products_id)) {
$remove_array = $_SESSION['productsCompare'];
$i = 0;
foreach ($remove_array as $value) {
if ($value == $products_id) {
unset($_SESSION['productsCompare'][$i]);
}
$i++;
}
if (count($remove_array) == 1) {
unset($_SESSION['productsCompare']);
}
}
как вы можете видеть, если $value == $products_id
идентификаторы удалены, но идентификатор не дублирован.
Моя проблема в том, что существует только один продукт с 3 или 4 одинаковыми дублирующимися идентификаторами.Я должен нажать на кнопку «Удалить» 4 раза, чтобы удалить продукты.
Как обновить цикл, чтобы удалить все одинаковые идентификаторы за один раз?
Спасибо.
пример $_SESSION['productsCompare']
дублируется
array(11) { [0]=> string(2) "14" [1]=> string(2) "14" [2]=> string(2) "14" [3]=> string(2) "14" [4]=> string(2) "13" [5]=> string(2) "13" [6]=> string(2) "14" [7]=> string(2) "13" [8]=> string(2) "14" [9]=> string(2) "13" [10]=> string(2) "11" }