Dieser Artikel befasst sich mit einem häufigen Problem bei der Arbeit mit PHP-Sitzungsarrays: Wie entfernt man eine bestimmte Variable, während die anderen beibehalten werden?
Problem:
PHP-Code, der die folgende Logik verwendet, versucht, Variablen zu einer Sitzung hinzuzufügen und daraus zu entfernen:
if(isset($_GET['name'])) { $name = isset($_SESSION['name']) ? $_SESSION['name'] : array(); $name[] = $_GET['name']; $_SESSION['name'] = $name; } if (isset($_POST['remove'])) { unset($_SESSION['name']); }
Wenn der Benutzer „ Entfernen“ versucht der Code, die in $list2 angezeigte Variable aus der Sitzung zu löschen, löscht jedoch stattdessen alle Variablen im Array.
Lösung:
Nur zum Entfernen Ändern Sie die Entfernungslogik für die spezifische Variable wie folgt:
if (isset($_POST['remove'])) { $key = array_search($_GET['name'], $_SESSION['name']); if ($key !== false) { unset($_SESSION['name'][$key]); $_SESSION["name"] = array_values($_SESSION["name"]); } }
Dieser Code verwendet array_search(), um den Array-Schlüssel zu finden, der der zu entfernenden Variablen entspricht. Anschließend wird die Variable deaktiviert und das Array mit array_values() neu indiziert.
Erklärung:
Wenn Sie $_SESSION['name'] deaktivieren, löschen Sie die gesamte Sitzungsvariable, die alle hinzugefügten Variablen enthält. Um nur eine bestimmte Variable zu entfernen, müssen Sie ihren Index im Array mit array_search() suchen. Wenn dieser Index vorhanden ist (d. h. $key ist nicht falsch), können Sie mit dem Deaktivieren des entsprechenden Elements fortfahren.
Die folgende Zeile strukturiert die Indizes des Arrays neu und stellt so sicher, dass die Array-Schlüssel sequentiell bleiben und potenzielle Probleme mit weiteren Elementen vermieden werden Ergänzungen oder Änderungen.
Das obige ist der detaillierte Inhalt vonWie entferne ich eine bestimmte Variable aus einem PHP-Sitzungsarray, ohne andere zu löschen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!