Homepage selbermachen 7.851 Themen, 35.616 Beiträge

Mehrdimensionales Array

Gonzales / 7 Antworten / Flachansicht Nickles

Hallo,
habe ein komplexes Problem:
ich habe ein array $test = array("wert1","wert2"..);
da greife ich einfach mit foreach($test as $ausgabe){...} zu
doch ich will nun ein mehrdimensionales array erstellen

  • frage 1: Wie erstelle ich das zu nächst einmal?
  • jedem wert1, wert2 soll nun ein extrewert zugewiesen werden, der dann in der foreach schleife verfügbar sein muss, also beispielsweise muss dann der wert der auch wert1 zugewiesen ist, in dem durchlauf der foreach schleife verfügbar sein, in dem gerade wert1 aufgerufen wird.


    hoffe das versteht einer :)
bei Antwort benachrichtigen
xafford Gonzales „habe das jetzt mal so gemacht: test array nama 0123456 , name2 0987654 foreach...“
Optionen

was du da gemacht hast ist auch kein 3-dimensionales array, sondern ein syntaxfehler...klingt zwar ähnlich, sind aber 2 grundverschiedene dinge ;o)...
mal zum besseren verständnis:
stell dir arrays am besten als koordinatensystem vor. hast du nur eine dimension, dann liegen alle werte auf der x-achse und du erreichst jeweils einen wert, indem du seine position auf der x-achse angibst. als beispiel folgendes array:
$a=array(a,b,c,d,e);
du hast jetzt auf der achse bei x=0 den wert a, bei x=1 den wert b usw...
hast du jetzt ein array mit 2 dimensionen:
$a=array(array(a0,a1,a2),array(b0,b1,b2),array(c0,c1,c2))
dann wird aus deiner reinen x-achse jetzt ein echtes koordinatensystem mit x-y-achsen.
unter x=0 hast du jetzt nicht mehr einen wert, sondern eine wertemenge, die a0,a1 und a2 enthält. gibst du jetzt zusätzlich zur position x=0 noch y=1 an, dann landest du bei dem wert a1.
dementsprechend funktioniert es auch mit 3 und mehrdimensionalen arrays 8außer daß das mit dem vorstellen ab 3 dimensionen für manche leute recht schwierig wird) ;o)...
jetzt zu deinem fehler:
=> ist ein zuweisungsoperator. er weist einem schlüssel (der position auf der achse als analogie) einen wert zu, daraus erklärt sich auch, daß deine zuweisung nicht existieren kann, da einem schlüssel nur ein wert zugewiesen werden kann, auch wenn dieser wert selbst eine wertemenge darstellt. also funktioniert dies immer nur als:
SCHLÜSSEL => WERT
du mußt also wen du mehrdimensional definieren willst einen der 2 nachfolgenden wege gehen:
$a=array(a=>array(1,2,3),b=>array(4,5,6))
oder du adressierst einzelne "speicherzellen" des array direkt:
$a[0][0][1]=a;
jetzt hat synonym zum beispiel des koordinatensystems die speicherzelle mit der adresse x=0, y=0, z=1 den wert a.
ich hoffe, das war einigermaßen verständlich.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen