Wie speichere ich Daten in einem mehrdimensionalen $_SESSION-Array?Php

PHP-Programmierer chatten hier
Guest
 Wie speichere ich Daten in einem mehrdimensionalen $_SESSION-Array?

Post by Guest »

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.

Code: Select all

$_SESSION['school'] = array('events' => array());
Beispiel für das Ereignisarray wäre:

Code: Select all

events['name'] = 'Homecoming';
events['date'] = 'December 15, 2012';
events['cost'] = 18.00;
events['attending'] = array();
events['attending'][$i] = 'John'
Die Verwendung wäre dann etwas anderes

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');
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.

Code: Select all

//would be an 1 dimensional array that empty until a school is added later on in code.
$_SESSION['school'] = array();
seine Elemente würden ein mehrdimensionales Array mit Elementen enthalten

Code: Select all

['name'] = 'Johnson High';
['address'] = '121 elm';
['city'] = 'san jose';
['state'] = 'California';
['events'] = array();
['events'] ist leer, bis Ereignisse hinzugefügt werden, aber hier sind einige Elemente, die es enthalten würde

Code: Select all

['events']['name'] = 'homecoming';
['events']['date'] = 'December 15, 2012';
['events']['cost'] = '18.00';
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

Code: Select all

$_SESSION['school']{ 'name' => 'Johnson High',
'events' => array('basketball', 'soccer', 'football'),
'name' => 'West Forsyth High',
'events' => array('basketball', 'soccer', 'football')};
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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post