Hi!
ich schaffe es einfach nicht, dass ich ein 2-Dimensionale Array in einer Session speichere.
Hör auf in Dimensionen zu denken, wenn du mit PHP arbeitest. PHP-Arrays sind Baumstrukturen. Manchmal erinnern sie zwar im Aussehen an x-dimensionale Gebilde, besonders wenn sie schön regelmäßig geschachtelt sind. aber das ist sofort mit einem Element-Hinzufügen oder -Löschen änderbar.
2.Dimensionen:
$array2d = array(array());
Das erzeugt mitnichten eine zweite Dimension. Du bekommst ein Array mit einem einzigen Element (mit dem Schlüssel 0), das ein leeres Array ist.
array2d[0][0] = "Hallo";
array2d[0][1] = "Welt";
array2d[1][0] = ...
Du hättest genausogut $array2d = array(); initialisieren können. Es ist noch nicht einmal notwendig, $array2d zu initialisieren (obwohl es vermutlich sinnvoll ist). Nach deinem array(array()) existiert nämlich nur diese Struktur:
array(1) {
[0]=>
array(0) {
}
}
Deine 1er Schlüssel erweitern das Array. Dimensionen heißt für mich, dass sich etwas gleichmäßig in diese Richtungen ausbreitet.
array(2) {
[0]=>
array(2) {
[0]=>
string(5) "Hallo"
[1]=>
string(4) "Welt"
}
[1]=>
array(1) {
[0]=>
string(3) "..."
}
}
Daran solltest du erkennen, dass du geschachtelte Arrays hast, die noch dazu ungleich groß sind. Auch könntest du problemlos das Hallo-Welt-Array gegen einen String oder sonstwas austauschen.
array(2) {
[0]=>
string(10) "Hallo Welt"
[1]=>
array(1) {
[0]=>
string(3) "..."
}
}
Damit ist dein Dimensionsbegriff endgültig hinfällig.
So nun meine Frage: Wie funktioniert das in Sessions.
Genau so. Nur der Name der Variablen festgelegt auf $_SESSION. Diese Variable unterscheidet sich in keiner Weise von einem normalen Array, was die Zugriffe angeht.
Lo!