У меня есть кнопка рядом со всеми моими «предметами магазина», которые могут удалить один из предметов магазина, однако мне нужно его просто удалить, а не удалить весь массив числа, я думал, что это возможно, используя оператор break, когда я нашел номер, который хочу удалить, но он удаляет все числа.Удаление определенного номера из массива сеансов в PHP
if (isset($_GET['remove']) && isset($_SESSION['shopitems'])) {
if (in_array($_GET['remove'], $_SESSION['shopitems'])) {
for ($i = 0; $i < sizeof($_SESSION['shopitems']); $i++) {
if ($_SESSION['shopitems'][$i] == $_GET['remove']) {
$shopArray = $_SESSION['shopitems'];
if(sizeof($shopArray) == 1) {
$_SESSION['shopitems'] = null;
$_SESSION['added'] = null;
} else {
array_splice($shopArray, $i, $i);
$_SESSION['shopitems'] = $shopArray;
}
break;
}
}
}
}
Здесь я проверить, если URL содержит переменную удалить, и сеанс устанавливается после того, как я сделал это, я проверить, если массив содержит число, которое ставится в URL, если это так я начну цикл for и проверить, равен ли ключевой индекс элементов сеансового магазина переменной URL, поэтому я хочу удалить его, однако, если я использую array_splice, внезапно все они исчезнут, это из-за функции, которую я использую ? Или нарушение не выполняется правильно?
'$ _SESSION [ 'shopitems'] = null' очистит все shopitems массив. Вам нужно очистить желаемый элемент только что-то вроде этого '$ _SESSION ['shopitems'] [$ i] = null' – developer