2012-07-30 11 views
5

Mam tablicę, która wyprowadza tak:PHP - 2D Arrays - Pętla poprzez klawisze tablicy i pobieranie ich wartości?

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) 

Chciałbym pętli każdego kluczy tablicy i pobrać zestaw 3 wartości odnoszących się do nich, coś jak to (co robi praca):

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

Czy ktoś mógłby udzielić porady na temat tego, w jaki sposób mogę to osiągnąć, lub nawet lepszego sposobu, w jaki bym podjął się tego zadania. Wszelkie informacje na ten temat, w tym linki do samouczków, które mogą to obejmować, byłyby bardzo mile widziane. Dzięki!!

+1

Tylko uwaga, "wartości" nie są "1" i "2"; Klucze są 1 i 2 - gdy wartości związane z przycisków 1 oraz 2 są przedmiotem zawierający łańcuch quantity' i 'total'. –

Odpowiedz

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

Korzystanie z powyższego.

+0

Dziękuję za Twój wkład, w jaki sposób uzyskam wartość kluczową? w moim przykładzie będzie to odpowiednio 1 i 2. –

+0

Przepraszam, zobacz moją zaktualizowaną odpowiedź. – Gavin

2

Musisz przeczytać docs na forEach() trochę więcej, ponieważ składni i zrozumienie jest nieco błędne.

$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() iteracyjnie przechodzi każdy klawisz tablicy do zmiennej - w powyższym przypadku, $sub_array (odpowiednia nazwa, ponieważ macierz zawiera tablice podrzędne). Wewnątrz ciała pętli chodzi o to, że musisz przesłuchać.

+0

Dzięki za twój wkład, ponieważ jest to bardzo doceniane. I tak, masz również rację odnośnie do dokumentów. Ale w moim przykładzie użyłem również '$ obj'. Czy można odzyskać tę wartość? Zobacz komentarz w powyższej odpowiedzi, proszę. –

+0

Cóż, składnia 'forEach' jest niepoprawna, więc trudno mi użyć dokładnie tego, co umieściłeś. Wygląda na to, że chcesz użyć '$ obj' zamiast' $ sub_array', tak jak ja. Powinienem był pomyśleć, że mój przykład łatwo jest dostosować do twoich celów. Jeśli wyraźnie chcesz, żebym to zmodyfikował, daj mi znać. – Utkanos

Powiązane problemy