array_push mit assoziativem Array?
*Markus
- php
Hallo,
tonnenweise findet man Tutorien, wo asoziative Arrays beim Initialisieren erzeugt werden. Ich möchte aber, ein einziges _erweiterbares_ assoziatives Array, d.h. eines, bei dem ich in einer Schleife Werte hinzufügen kann.
Bisher gelang mir das nicht.
Denn schreibe ich so etwas..
array_push($aHauptseitendaten, array($dir=>$fileInhalt));
...wird für jeden neuen Wert ein neues Array erzeugt. Schreibe ich $dir=>$fileInhalt statt array($dir=>$fileInhalt) meckert der Parser wegen des Pfeils. Schreibe ich "$dir=>$fileInhalt", sieht eine Ausgabe mit print_r zwar so aus, wie ich es mir vorstelle, aber es ist wahrscheinlich kein assoziaties Array sondern ein Array mit lauter String-Werten, wo ein String-Wert aus zwei Variablen mit einem Pfeil besteht.
Wie funktioniert das in PHP?
Ich möchte quasi ein PHP-Äquivalent zu einem Hash in Perl oder einer HashMap in Java.
Markus
Hi!
Hi!
Denn schreibe ich so etwas..
array_push($aHauptseitendaten, array($dir=>$fileInhalt));
>
> ...wird für jeden neuen Wert ein neues Array erzeugt.
Klar, das teilst du PHP ja auch so mit.
Warum nicht so:
~~~php
$aHauptseitendaten[$dir] = $fileInhalt;
?
off:PP
Hallo,
$aHauptseitendaten[$dir] = $fileInhalt;
> ?
Ja. Das brauche ich, danke. Da stand ich wohl schön auf der Leitung. Im Prinzip funktioniert es ja in Perl genauso, aber dadurch, dass ich ständig nur mit Java konfrontiert bin, vergisst man irgendwie die einfachsten Dinge.
Markus
--
![](http://signatur.pithax.net/linuxbanner.gif)
Moin!
Hallo,
$aHauptseitendaten[$dir] = $fileInhalt;
> > ?
>
> Ja. Das brauche ich, danke. Da stand ich wohl schön auf der Leitung. Im Prinzip funktioniert es ja in Perl genauso, aber dadurch, dass ich ständig nur mit Java konfrontiert bin, vergisst man irgendwie die einfachsten Dinge.
So ein Array-Push für assoziative Arrays kann ja schon rein von der Logik her nicht funktionieren.
Bei einem numerisch indizierten Array nimmt array\_push() einen neuen Wert entgegen und vergibt dafür den "nächsten" numerischen Index.
Bei einem assoziativen Array gibt es keinen "nächsten" Index. Auf welcher Basis hätte der errechnet werden sollen? Was käme nach $array["baum"]? "baum0", "baum1" oder gar "baun"?
- Sven Rautenberg
--
"Love your nation - respect the others."
Hi!
So ein Array-Push für assoziative Arrays kann ja schon rein von der Logik her nicht funktionieren.
Das stimmt natürlich, hätte ich dem OP wohl auch so mitteilen sollen, aber ich war gerade etwas in Eile.
Der gute Sven aber wird nicht müde und erklärt es, sodass es nachhaltig wirkt.
Danke!
off:PP