"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

php Array Frage

kleinerChemiker 24.02.2007 - 20:32 1266 15
Posts

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
ich "starte" ein array mit

$var = array();

jetzt kommen mehrere if's, in denen das Array ergänzt wird. Ich bin mir jetzt etwas unsicher, kann ich das dann eh jeweils so ergänzen?

$var .= array('schluessel' => 'wert');

tia

TheHackman

48°12'N 16°19'E
Avatar
Registered: Jul 2001
Location: /eu/at/wien
Posts: 2415
wieso anhängen?
wenn der schlüssel (eigentlich index) erhöht wird, wird ja das array automatisch größer oder?
bitte nicht schlagen wenns nicht stimmt ;)

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25423
entweder du identifizierst den eintrag anhand des schlüssels, wie hackman schon erwähnt hat, oder du fügst einen neuen eintrag per fortlaufender nummer hinzu. das würde dann so aussehen:

$var[] = array('whatsoever' => 1338);

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
das ist ein rein assoziatives Array.

soll am Ende etwa so aussehen

Code:
array ('schluessel1' => 'wert1',
          'schluessel2' => 'wert2',
          'schluessel3' => 'wert3')

Nur daß die Schlüssel/Wert Paare nicht auf einmal, sondern nacheinander eingegeben werden.

Code:
$a = array();
if ($a==true) {
   $a .= array ('schluessel1' => 'wert1',
                      'schluessel2' => 'wert2',);
}
if ($b==true) {
   $a .= array ('schluessel1' => 'wert1',
                      'schluessel2' => 'wert2',);
}

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25423
sollen sich die schlüssel überschreiben? wenn ja, dann brauchst du array_merge(). aber insgesamt finde ich deine angaben etwas seltsam.

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
ups, da habe ich mich mit c/p vertan. Die Schlüsseln sind alle verschieden und sollen sich nicht überschreiben. Hätte eigentlich so aussehen sollen:

Code:
$a = array();
if ($a==true) {
   $a .= array ('schluessel1' => 'wert1',
                      'schluessel2' => 'wert2',);
}
if ($b==true) {
   $a .= array ('schluessel3' => 'wert3',
                      'schluessel4' => 'wert4',);
}

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25423
dennoch: array_merge() :shake:

Code:
$a = array();
if ($a==true) {
   $a = array_merge($a,array ('schluessel1' => 'wert1',
                      'schluessel2' => 'wert2'));
}
if ($b==true) {
   $a = array_merge($a,array ('schluessel3' => 'wert3',
                      'schluessel4' => 'wert4'));
}

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
thx, also kann man Array's nicht so einfach wie Strings zusammenhängen.

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25423
oh doch.. aber nicht wie strings.

$a = $a1 + $a2;
$a += $a1;

ich benutze dennoch immer array_merge(). wahrscheinlich eine schlechte angewohnheit von mir ;)

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
ah, super, danke dir :)

Snoop

Here to stay
Registered: Jun 2002
Location: Gablitz
Posts: 1088
also zunächst mal zu den arrays: so wie ihr das anschreibts, machts ihr mehrdimensionale arrays, das würde klarerweise das abrufen etc. um einiges schwerer machen ;)

$a = array();

$a["key"] = "value"; <-- korrekte schreibweise

weiters noch so zum code dazu

if($a==true) kannst da sparen

if($a) { .... } is korrekt ;)

MFG
Snoopal

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
es gibt nicht immer nur eine richtige schreibweise

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25423
Zitat von Snoop
also zunächst mal zu den arrays: so wie ihr das anschreibts, machts ihr mehrdimensionale arrays, das würde klarerweise das abrufen etc. um einiges schwerer machen ;)
nein (ich weiss, das klingt hart :D)
Zitat von Snoop
$a = array();

$a["key"] = "value"; <-- korrekte schreibweise
korrekt ist beides, nur war es so nicht im sinne des threadstarters. er wollte mehrere schlüssel gleichzeitig zuweisen.
Zitat von Snoop
weiters noch so zum code dazu

if($a==true) kannst da sparen

if($a) { .... } is korrekt ;)
würde mal sagen ersteres dient eher der lesbarkeit, besonders bei php und ohne hungarian notation. bleibt aber dennoch geschmackssache, weil beides ist korrekt!

Snoop

Here to stay
Registered: Jun 2002
Location: Gablitz
Posts: 1088
Ahoi,
Soda hab mir nochmal durchgelesen, du hast recht :D

Wegen den Standards: Es hat einen Grund, warum es diese Schreibweisen gibt: Typo3 programmierer haben von ein paar Jahren damit angefangen sogenannte "standards" mit Begründungen für die Programmierung in ihrem System aufzustellen. Wer sich mit soetwas auseinandersetzt, wird feststellen, dass die Rendertime und die CPU Auslastung herabgesetzt wird, wenn man sich daran hält, da der Parser weniger zu tun hat. Klar kann man jetzt mim Argument kommen: so viele Leute werden das Script nie aufrufen: doch die Frage ist, was is wenn doch ?
Ich hab selbst ein Communityportal mal gemacht und das is inzwischen, auch wenn ich nimma offiziell dabei bin, zu einem der größten Österreichs herangewachsen und glaubs ma, es macht einen Unterschied "wie" du Code schreibst :)

Ich weiß lange Rede kurzer Sinn: beides is Richtig und wenn man nicht auf die Performance schaut, ists blunzen :D
Ps: und jetzt bitte nicht glauben ich bin ein kleines Kind das heult, weil ihm jemand widerspricht :D

dio

Here to stay
Registered: Nov 2002
Location: Graz
Posts: 4882
ich glaub nur du versuchst den falschen zu belehren :D
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz