php Array Frage

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_array_frage_176876/page_1 - zur Vollversion wechseln!


kleinerChemiker schrieb am 24.02.2007 um 20:32

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 schrieb am 24.02.2007 um 20:36

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 schrieb am 24.02.2007 um 21:07

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 schrieb am 24.02.2007 um 21:14

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 schrieb am 24.02.2007 um 21:19

sollen sich die schlüssel überschreiben? wenn ja, dann brauchst du array_merge(). aber insgesamt finde ich deine angaben etwas seltsam.


kleinerChemiker schrieb am 24.02.2007 um 21:30

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 schrieb am 24.02.2007 um 21:32

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 schrieb am 24.02.2007 um 21:37

thx, also kann man Array's nicht so einfach wie Strings zusammenhängen.


mat schrieb am 24.02.2007 um 21:50

oh doch.. aber nicht wie strings.

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

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


kleinerChemiker schrieb am 24.02.2007 um 21:54

ah, super, danke dir :)


Snoop schrieb am 24.02.2007 um 23:03

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 schrieb am 24.02.2007 um 23:44

es gibt nicht immer nur eine richtige schreibweise


mat schrieb am 25.02.2007 um 03:53

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 schrieb am 25.02.2007 um 11:53

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 schrieb am 25.02.2007 um 13:07

ich glaub nur du versuchst den falschen zu belehren :D




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026