Ich habe eine Schaltfläche neben all meinen 'Shop-Artikel', die einen der Shop-Artikel entfernen kann, aber ich brauche es nur zu entfernen, und nicht das gesamte Array los Ich dachte, das wäre möglich, indem ich eine break-Anweisung verwende, wenn ich die Nummer gefunden habe, die ich entfernen möchte, aber es entfernt alle Zahlen.Entfernen einer bestimmten Nummer aus einem Session-Array in 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;
}
}
}
}
Hier prüfe ich, ob die URL der remove Variable und die Sitzung enthält gesetzt ist, sobald ich dies getan habe, ich überprüfen, ob das Array die Nummer enthält, die in der URL gesetzt wird, wenn also werde ich anfangen eine for-Schleife und prüfen, ob der Schlüsselindex der Session-Shop-Elemente gleich der URL-Variable ist, wenn ja, ich möchte sie entfernen, aber wenn ich array_splice, plötzlich sind sie alle weg, ist dies wegen der Funktion, die ich verwende ? Oder wird der Break nicht korrekt ausgeführt?
'$ _SESSION [ 'shopitems'] = null' alle shopitems Array löschen wird. Sie müssen das gewünschte Element nur etwas wie diese $ _SESSION ['shopitems'] löschen [$ i] = null' – developer