2012-07-30 18 views
5

tengo una matriz que da salida como esta:PHP - Arrays 2D - ¿Bucle a través de las teclas de matriz y recuperar sus valores?

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) 

quisiera recorrer cada claves de matriz y recuperar el conjunto de los 3 valores relacionados con ellas, algo como esto (que no funciona):

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

¿Alguien podría darme algún consejo sobre cómo lograría esto, o incluso una mejor manera para que yo realice esta tarea? Cualquier información relacionada con esto, incluyendo enlaces a tutoriales que pueden cubrir esto, sería muy apreciada. ¡¡Gracias!!

+1

Solo una nota, los "valores" no son '1' y' 2'; las TECLAS son 1 y 2, mientras que los valores asociados con las teclas 1 y 2 son los objetos que contienen 'cantidad' y' total'. –

Respuesta

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

Usando lo anterior.

+0

Gracias por su aporte, ¿cómo obtendría el valor clave aunque? en mi ejemplo sería 1 y 2 respectivamente. –

+0

Disculpe, vea mi respuesta actualizada. – Gavin

2

Necesita leer los documentos en forEach() un poco más, ya que su sintaxis y su comprensión son algo incorrectos.

$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() pasa iterativamente cada clave de la matriz a una variable - en el caso anterior, $sub_array (un nombre adecuado, ya que su matriz contiene sub-series). Entonces, dentro del cuerpo del bucle, es que necesita interrogar.

+0

Gracias por su aporte, ya que es muy apreciado. Y sí, también tienes razón sobre los documentos. Pero en mi ejemplo usé '$ obj' también. ¿Es posible recuperar este valor? Ver el comentario en la respuesta anterior, por favor. –

+0

Bueno, la sintaxis 'forEach' es incorrecta, así que me es difícil usar exactamente lo que pones. Parece que quieres usar '$ obj' en lugar de' $ sub_array' como yo. Debería haber pensado que mi ejemplo era bastante fácil de adaptar a tus propósitos. Si expresamente quiere que edite para mostrar esto, hágamelo saber. – Utkanos

Cuestiones relacionadas