Neues Array in einem Array erzeugen

Hallo nochmal, ^^

Geht es irgendwie, dass ich nachträglich ein Array in einem vorhandenen Array erstelle?
Also ich hatte es so probiert:

[code]$Array = array(array()); // vorhandenes Array

$Array[] = $variable; // neues Array namens ‘$variable’ in $Array erstellen !?
$Array[$variable][] = ‘bla’;
$Array[$variable][] = ‘blabli’;

$Array[] = $variable2;
$Array[$variable2][] = ‘bla’;
$Array[$variable2][] = ‘blabli’;
[/code]
Das geht aber irgendwie nicht :wink:
Bestimmt sieht das vorhandene Array dann nur so aus: $Array = array(array(), $variable, $varible2)
Soll aber so aussehen: $Array = array($variable => array(), $variable2 => array())

Versteht ihr was ich meine?
Vielen Dank für eure Hilfe, ihr seit echt super!
Maddin

Ich versteh dich nicht ganz… Du willst den Key des bereits vorhandenen Array mit dem Key 0 verändern? Oder willst du in das vorhandene Array als weiteren Wert ein Array schreiben?

Wenn du letzteres vorhast, dann kann das so rein praktisch schon nicht gehen, weil der Code einen neuen Key mit dem Wert $variable anlegt. Die Lösung lieferst du eigentlich schon oben im Skript - um als weiteren Wert ein Array hinzuzufügen, musst als Wert einfach array() angeben.

Wie es aussieht, schaust du dir mit print_r/var_dump erst mal selber an.

Und dann überlegst du dir mal genau, was du willst. Dabei kommst du entweder selbst schon darauf, wie es geht - oder zumindest zu einer Beschreibung davon, die auch andere Leute ausser dir verstehen können.

Ich hab den Code mal abgeändert, dass er Sinn ergibt.

[code]$variable = ‘name’;
$Array = array(array()); // vorhandenes Array

$Array[$variable] = array(); // Das hier ist gar nicht nötig, da der restliche in diesem Block sowieso schon ein Array anlegt.
$Array[$variable][] = ‘bla’;
$Array[$variable][] = ‘blabli’;

$Array[] = $variable2;
$Array[$variable2][] = ‘bla’;
$Array[$variable2][] = ‘blabli’;

print_r($Array);[/code]

Und so sieht das Array nun aus:

[code]Array
(
[0] => Array
(
)

[1] => Array
    (
    )

[name] => Array
    (
        [0] => bla
        [1] => blabli
    )

[2] => 
[] => Array
    (
        [0] => bla
        [1] => blabli
    )

)
[/code]

Edit: Ich hab jetzt erst den Code des zweiten Blocks realisiert - was soll der überhaupt? Für mich sieht das so aus, als ob das gleiche wie im ersten passieren sollte - ich hab den zwar noch nicht überarbeitet, aber am ersten siehst du ja, wie es sein muss.

Ich möchte in einem Array neue Arrays eintragen, die mit einem bestimmten Namen angesprochen werden können.
Noch mal ein anderer Code:

[code] // Nur Beispielinhalte der Liste (sind sonst unbekannt):
$Liste = array();
$Liste[0] = “Peter”;
$Liste[1] = “Fritz”;
$Liste[2] = “Max”;

$Array = array();
for($x = 0; $x < count($Liste); $x++) {
	$Name = $Liste[$x];
	$Array[] = array(); // Dieses neue Array im $Array soll den Name/Key $Name bekommen
	$Array[$Name][] = "irgendwas"; // Wieviele Einträge gemacht werden, ist jedesmal unterschiedlich. auch der Inhalt
}

// Dann möchte ich so auf den Inhalt zugreifen können:
print $Array['Peter'][0];
print $Array['Peter'][1];[/code]

Versteht ihr es jetzt vieleicht? :neutral_face: :neutral_face: :neutral_face:

Ja, jetzt verstehe ich es zumindest. Die Lösung hab ich oben schon im Code drin.

$Array[$variable] = array(); So musst du das neue Array anlegen. Es sollte aber auch so, wie du es gemacht hast funktionieren, nur dass eben noch ein Array mit einer Ziffer angelegt wird.

$Array[] = array(); // Hier wird ein neuer Arraywert mit der höchsten im Array unbelegeten Ziffer als Key angelegt $Array[$Name][] = "irgendwas"; // Hier wird einmal ein Array als neuer Wert für $Array mit dem Key $Name angelegt und außerdem für dieses Array "irgendwas" als Wert zugewiesen

Es funktioniert!
:smiley:

Jetzt wäre es noch schön, wenn du mir sagen kannst, wie ich den Name (oder was das is ^^) eines bestimmten Arrays im $Array, in eine Variable schreiben kann?

Also bezogen auf das obige Beispiel möchte ich „Peter“, „Fritz“ und „Max“ in die Variable bekommen.
irgendwie so:

/// DAS IST NICHT DER RICHTIGE CODE $Name = $Array[0]; /// $Name soll jetzt "Peter" enthalten.
Also ist klar, dass es so nicht geht…
Wie geht es denn?

Danke für die Hilfe! :hail:

Noch schöner wäre, wenn du dir jetzt einfach mal grundlegendes Verständnis davon, wie man in PHP mit Arrays umgeht, aneignen würdest.

Du drückst dich immer noch nicht so aus, dass nachvollziehbar ist, was du eigentlich willst.

[quote]Also bezogen auf das obige Beispiel möchte ich “Peter”, “Fritz” und “Max” in die Variable bekommen.
irgendwie so:

Dann hätte der Inhalt von $array[0] vorher bereits “Peter” lauten müssen.

Wenn du am Inhalt des Schlüssels, unter dem ein Element im Array abgelegt ist, interessiert bist - dann schau dir die foreach-Schleife an, sowie die Array-Funktionen im Manual.