2012-07-30 7 views
5

Ich habe ein Array, das wie folgt ausgibt:PHP - 2D-Arrays - Schleifen von Array-Schlüsseln und Abrufen ihrer Werte?

1 => 
array 
    'quantity' => string '2' (length=1) 
    'total' => string '187.90' (length=6) 

2 => 
array 
    'quantity' => string '2' (length=1) 
    'total' => string '2,349.90' (length=8) 

I eine Schleife durch jedes Array Tasten wie würde und die Menge von 3 Werten abrufen, um sie in Bezug, etwa wie folgt (die nicht funktionieren):

foreach($orderItems as $obj=>$quantity=>$total) 
{ 
    echo $obj; 
    echo $quantity; 
    echo $total; 
} 

Würde jemand in der Lage sein, einen Ratschlag zu geben, wie ich dies erreichen könnte, oder sogar einen besseren Weg für mich, über diese Aufgabe zu gehen. Alle diesbezüglichen Informationen, einschließlich Links zu Tutorien, die dies abdecken könnten, würden sehr geschätzt werden. Vielen Dank!!

+1

Nur eine Anmerkung, die "Werte" sind nicht "1" und "2"; die TASTEN sind 1 und 2 - während die Werte, die den Tasten 1 und 2 zugeordnet sind, die Objekte sind, die "Menge" und "Summe" enthalten. –

Antwort

5
foreach($orderItems as $key => $obj) 
{ 
    echo $key; 
    echo $obj['quantity']; 
    echo $obj['total']; 
} 

den oben.

+0

Vielen Dank für Ihre Eingabe, wie würde ich den Schlüsselwert tho bekommen? in meinem Beispiel wäre es 1 bzw. 2. –

+0

Entschuldigung, sehe meine aktualisierte Antwort. – Gavin

2

Sie müssen die Dokumente auf forEach() ein wenig mehr lesen, da Ihre Syntax und Verständnis davon etwas falsch ist.

$arr = array(
    array('foo' => 'bar', 'foo2', 'bar2'), 
    array('foo' => 'bar', 'foo2', 'bar2'), 
); 
foreach($arr as $sub_array) { 
    echo $sub_array['foo']; 
    echo $sub_array['bar']; 
} 

forEach() gibt iterativ jede Taste des Arrays zu einer Variablen - im obigen Fall, $sub_array (ein passender Name, da das Array enthält Subanordnungen). Innerhalb des Schleifenkörpers müssen Sie also abfragen.

+0

Vielen Dank für Ihre Eingabe, da es sehr geschätzt wird. Und ja, du hast auch Recht bezüglich der Dokumente. Aber in meinem Beispiel habe ich auch '$ obj' benutzt. Ist es möglich, diesen Wert abzurufen? Sehen Sie den Kommentar in der Antwort oben bitte. –

+0

Nun, deine ForEach-Syntax ist falsch, daher fällt es mir schwer, genau das zu verwenden, was du angegeben hast. Es klingt so, als ob du '$ obj' anstelle von' $ sub_array' benutzen willst. Ich hätte gedacht, dass mein Beispiel ziemlich einfach an Ihre Zwecke angepasst werden könnte. Wenn Sie ausdrücklich möchten, dass ich dies editiere, lassen Sie es mich wissen. – Utkanos