Wie speichere ich Daten in einem mehrdimensionalen $_SESSION-Array?
Posted: 16 Jan 2025, 02:47
Ich zerbreche mir den Kopf, um mir das klarzumachen. Ich habe schon früher mit Arrays gearbeitet, aber in PHP scheine ich damit Probleme zu haben. Vertrauen Sie mir, ich habe mir die Fragen hier und an anderen Stellen angesehen und entschuldige mich im Voraus dafür, wie grundlegend diese Frage wahrscheinlich ist. Was ich versuche, ist, ein Array aus einem Array zu erstellen???
Im Grunde versuche ich, eine globale Sitzungsvariable zu erstellen, damit sie ein Array speichert und das kann kontinuierlich erweitert werden.
Beispiel für das Ereignisarray wäre:
Die Verwendung wäre dann etwas anderes
...
Ich habe versucht, es wie oben erwähnt zu erstellen und wie folgt zu füllen (wieder ein Array). Array von Ereignissen)
Das scheint nicht zu funktionieren, weil ich erkennen kann, dass die Anzahl steigt, während es gefüllt wird. Ich habe ein paar andere Möglichkeiten ausprobiert, aber aus irgendeinem Grund konnte ich es nicht herausfinden. Die meisten Beispiele, auf die ich gestoßen bin, scheinen nicht dem zu ähneln, was ich versuche. Für jede Hilfe wäre ich sehr dankbar.
--------AKTUALISIERTE FRAGE BASIEREND AUF FEEDBACK--------
Ich glaube, ich Ich bin kurz davor, Ihre aktualisierte Logik zu verstehen, und ich habe versucht, meinen Code zu aktualisieren, aber ich stoße auf das folgende Problem. Ich habe ein Initialisierungs-PHP-Skript, das $_SESSION['school'] = array(array()); setzt. Dies wird erst später ausgefüllt und irgendwann überprüfe ich $_SESSION['school'] mit count. Bei der ersten Prüfung wird immer 1 zurückgegeben, auch wenn nichts hinzugefügt wurde. Ich gehe jedoch davon aus, dass es daran liegt, dass es ein leeres Array enthält. Das bringt mich dazu, die Struktur in Frage zu stellen.
Da ich ein visueller Mensch bin, denke ich, dass ich das brauche, aber ich bin mir nicht sicher, wie ich es konstruieren soll.
seine Elemente würden ein mehrdimensionales Array mit Elementen enthalten
['events'] ist leer, bis Ereignisse hinzugefügt werden, aber hier sind einige Elemente, die es enthalten würde
am Ende könnte die $_SESSION['school'] eine bis viele Schulen enthalten, die ich durchlaufen könnte.
Nun zu meinem Missverständnis der aktualisierten danL-Logik: Ich verstehe nicht, wie Name und Ereignisse denselben Index haben könnten? Wenn ich mir den Code ansehe, habe ich das Gefühl, dass $_SESSION['school'] so aussehen würde
Wenn das der Fall ist, hat jedes Element einen anderen Index. Mir muss hier etwas Grundlegendes fehlen. Ich versuche ständig, mich zu informieren und herauszufinden, was ich falsch mache. Ich glaube, ich betrachte das Problem einfach aus dem falschen Blickwinkel.
Im Grunde versuche ich, eine globale Sitzungsvariable zu erstellen, damit sie ein Array speichert und das kann kontinuierlich erweitert werden.
Code: Select all
$_SESSION['school'] = array('events' => array());
Code: Select all
events['name'] = 'Homecoming';
events['date'] = 'December 15, 2012';
events['cost'] = 18.00;
events['attending'] = array();
events['attending'][$i] = 'John'
Code: Select all
echo $_SESSION['school'][$i][events]['name'];
echo $_SESSION['school'][$i][events]['date'];
echo $_SESSION['school'][$i][events]['cost'];
Ich habe versucht, es wie oben erwähnt zu erstellen und wie folgt zu füllen (wieder ein Array). Array von Ereignissen)
Code: Select all
$_SESSION['school'] = array('events' => array());
$_SESSION['school'][$i][events]['name'] = 'Homecoming';
$_SESSION['school'][$i][events]['date'] = 'December 15, 2012';
$_SESSION['school'][$i][events]['cost'] = 18.00;
$_SESSION['school'][$i][events]['people'] = array('jane', 'john', 'bill');
--------AKTUALISIERTE FRAGE BASIEREND AUF FEEDBACK--------
Ich glaube, ich Ich bin kurz davor, Ihre aktualisierte Logik zu verstehen, und ich habe versucht, meinen Code zu aktualisieren, aber ich stoße auf das folgende Problem. Ich habe ein Initialisierungs-PHP-Skript, das $_SESSION['school'] = array(array()); setzt. Dies wird erst später ausgefüllt und irgendwann überprüfe ich $_SESSION['school'] mit count. Bei der ersten Prüfung wird immer 1 zurückgegeben, auch wenn nichts hinzugefügt wurde. Ich gehe jedoch davon aus, dass es daran liegt, dass es ein leeres Array enthält. Das bringt mich dazu, die Struktur in Frage zu stellen.
Da ich ein visueller Mensch bin, denke ich, dass ich das brauche, aber ich bin mir nicht sicher, wie ich es konstruieren soll.
Code: Select all
//would be an 1 dimensional array that empty until a school is added later on in code.
$_SESSION['school'] = array();
Code: Select all
['name'] = 'Johnson High';
['address'] = '121 elm';
['city'] = 'san jose';
['state'] = 'California';
['events'] = array();
Code: Select all
['events']['name'] = 'homecoming';
['events']['date'] = 'December 15, 2012';
['events']['cost'] = '18.00';
Nun zu meinem Missverständnis der aktualisierten danL-Logik: Ich verstehe nicht, wie Name und Ereignisse denselben Index haben könnten? Wenn ich mir den Code ansehe, habe ich das Gefühl, dass $_SESSION['school'] so aussehen würde
Code: Select all
$_SESSION['school']{ 'name' => 'Johnson High',
'events' => array('basketball', 'soccer', 'football'),
'name' => 'West Forsyth High',
'events' => array('basketball', 'soccer', 'football')};