Entfernen von Elementen aus einer Sitzung
Ich habe Probleme mit dem entfernen von Elementen in ein session-array in einen Einkaufswagen Projekt. Der folgende code sollte die ausgewählte Position und entfernen Sie es aus der Sitzung. Aber das Endergebnis ist einfach nur der gleichen Sitzung wie vor mit nichts entfernt. Ich habe gesehen, ähnliche Probleme durch googeln, aber nicht gefunden haben, eine funktionierende Lösung noch nicht. Hier der abgespeckte code:
<?php
session_start();
$removeditem = $_GET['item']; //this identifies the item to be removed
unset($_SESSION['stuff'][$removeditem]); //"stuff" is the existing array in the session
?>
Hier sind, was print_r gibt für die folgenden (mit "7" als Beispiel für das entfernte Element):
$removeditem:
7
$_SESSION['stuff'] (before and after removal)
Array
(
[0] => 7
[1] => 24
[2] => 36
)
Übersehe ich etwas offensichtliches?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Löschen Sie das Element mit dem SCHLÜSSEL gleich $removedItem. Es scheint mir, von Ihrem Beispiel, dass Sie versuchen, um das element zu löschen, dass hat den gleichen WERT removedItem. In diesem Fall müssen Sie eine foreach-Schleife um den Schlüssel zu identifizieren und dann löschen.
Müssen Sie zuerst den
key
des Elements und dannunset
es. Hier ist der code, den Sie verwenden sollten:Die am meisten einfache Weise ist:
P. S. Nicht getestet... nur ein Konzept.
7 ist-Wert in das array keinen Schlüssel, also etwas lösche mit der Taste 7 wird nicht ein job.
Was Sie tun müssen ist, vergleichen Sie jedes Element im array mit ein, die Sie löschen möchten ($_GET['item']) , ermittelt werden seinen Schlüssel und unset es.