2012-07-30 10 views
5

Ho un array che emette simili:PHP - Array 2D: looping attraverso i tasti dell'array e recupero dei relativi valori?

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) 

desidero ciclo attraverso ogni chiavi dell'array e recuperare il set di 3 valori relativi ad esse, qualcosa di simile (che non lavorare):

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

Qualcuno sarebbe in grado di dare qualche consiglio su come realizzare questo, o anche un modo migliore per me di andare su questo compito. Qualsiasi informazione relativa a questo, compresi i link ai tutorial che potrebbero coprire questo, sarebbe molto apprezzata. Grazie!!

+1

Solo una nota, i "valori" non sono '1' e' 2'; i KEYS sono 1 e 2 - mentre i valori associati ai tasti 1 e 2 sono gli oggetti contenenti 'quantity' e' total'. –

risposta

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

Utilizzando quanto sopra.

+0

Grazie per l'input, come potrei ottenere il valore chiave? nel mio esempio sarebbe rispettivamente 1 e 2. –

+0

Siamo spiacenti, vedere la mia risposta aggiornata. – Gavin

2

È necessario leggere i documenti su forEach() un po 'di più, poiché la sintassi e la comprensione di esso sono alquanto errate.

$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() passa iterativamente ogni tasto della matrice a una variabile - nel caso precedente, $sub_array (un nome adatto, poiché la matrice contiene sotto-array). Quindi all'interno del corpo del ciclo, è necessario interrogare.

+0

Grazie per il tuo contributo perché è molto apprezzato. E sì, hai ragione anche sui documenti. Ma nel mio esempio ho usato anche '$ obj'. È possibile recuperare questo valore? Vedere il commento nella risposta sopra per favore. –

+0

Bene, la sintassi 'forEach' è sbagliata, quindi è difficile per me usare esattamente ciò che si inserisce. Sembra che tu voglia usare '$ obj' invece di' $ sub_array' come ho fatto io. Avrei dovuto pensare che il mio esempio fosse abbastanza facile da adattare ai tuoi scopi. Se vuoi espressamente che modifichi per mostrarlo, fammi sapere. – Utkanos