mehrdimensionales assoziatives array
urmel
- php
0 urmel0 urmel0 Sven Rautenberg
hallo, ich verzweifel bald an mir selbst.
ich suche eine lösung für folgends problem.
suche eine weg eine mehrdimensionale array variable assosiativ zu initialisieren bzw. wenn ein wert schon im array vorhanden ist soll er .= genommen werden.
aus perl war ich folgends gewöhnt und habe dies in php versucht dort scheint es aber nicht zu klappen oder etwa doch ?
$benutzer[$benutzer_count]['$flag'] .= $zeile;
$benutzer ist vorher als array() datentyp deklaiert worden.
kann ich nicht einfach ein zweites [] an das erste drannhängen ?
bisher muss ich umständlicherweise wie folgt lösen dabei wird allerdings glaube ich immer der wert in dem element überschrieben wenn die $flag-variable
auf das gleiche assosiative array zugreift, hierbei will ich doch nur das sie einen wert drannhängt
$benutzer[] = array($benutzer_count => array('$flag' => $zeile));
ich bräuchte ne art .=> operator.
ich kann dieses problem natürlich lösen aber ich will natürlich den leichtesten weg nehmen.
danke im vorraus
gruß urmel
$benutzer[] = array($benutzer_count => array('$flag' => $zeile));
korrigiere:
$benutzer[] = array($benutzer_count => array("$flag" => $zeile));
bisher muss ich umständlicherweise wie folgt lösen dabei wird allerdings glaube ich immer der wert in dem element überschrieben wenn die $flag-variable
auf das gleiche assosiative array zugreift, hierbei will ich doch nur das sie einen wert drannhängt
$benutzer[] = array($benutzer_count => array('$flag' => $zeile));
dem scheint nicht so, habe es nochmals ausprobiert und er scheint es dranzuhängen, dann hätte ich aber wiederum das gleiche problem, was ist wenn ich ein element nicht drannhängen will?!
oder vertue ich mich da gerade total, also diese phpmehrdi sind mir suspekt
danke euch
Moin!
aus perl war ich folgends gewöhnt und habe dies in php versucht dort scheint es aber nicht zu klappen oder etwa doch ?
$benutzer[$benutzer_count]['$flag'] .= $zeile;
Das sieht wunderbar funktionierend aus. Bis auf die eine Tatsache: Warum ['$flag'], warum nicht [$flag].
Deine Version fügt ein Arrayfeld namens '$flag' an. Bedenke, dass Variablen innerhalb von einfachen Anführungszeichen nicht interpoliert werden!
Wenn du Variablen als Key nehmen willst: Immer ohne Anführungszeichen, alles andere macht keinen Sinn.
Wenn du hingegen feste Werte als Key benutzt: Immer mit Anführungszeichen. PHP korrigiert derzeit zwar noch fehlende Anführungszeichen, aber eigentlich meinst du so eine Konstante, die vorher definiert werden muß.
- Sven Rautenberg
gmpfffffff *gg*
du hast natürlich recht, bei einem beispiel hatte ich die ' zu " korrigiert aber das andere beispiel von mir hatte ich übersehen.
danke dir, warst mir wirklich eine große hilfe, endlich wäre das geschafft
also nochmals danke und wünsche einen schönen abend noch.
beste grüße urmel
Hallo Urmel,
du hast natürlich recht, bei einem beispiel hatte ich die ' zu " korrigiert
Was aber Quatsch ist.
"$bla" ist hat das gleiche Ergebnis wie $bla, wenn $bla eine Zeichenkette ist. Aber "$bla" ist *viel* langsamer, um den Faktor 2 oder 3. Wenn Du das ständig verwendest oder auch in Schleifen, dann kann das durchaus auf die Performance drücken! (wenn eine Codestellt mit "$bla" 10000 mal ausgeführt wird, was durchaus nicht unwarscheinlich ist, dann macht sich das durchaus bemerkbar)
Viele Grüße,
Christian