2012-07-30 13 views
5

私はこのような出力配列を持っている:PHP - 2D配列 - 配列キーをループしてその値を取得していますか?

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) 

私は、各配列のキーをループしたいと3つのそれらに関連する値、(仕事をdoesntの)このようなものの集合取得します:

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

誰かが私がこれを達成する方法や、私がこの仕事をするためのよりよい方法について助言を与えることができますか?これをカバーするかもしれないチュートリアルへのリンクを含むこれに関するすべての情報は、非常に高く評価されるでしょう。ありがとう!!

+1

「値」は「1」と「2」ではありません。 KEYSは1と2です - キー1と2に関連する値は 'quantity'と' total'を含むオブジェクトです。 –

答えて

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

上記を使用してください。

+0

入力いただきありがとうございます。どうすればキー値を取得できますか?私の例では、それぞれ1と2になります。 –

+0

申し訳ありませんが、私の更新された回答を参照してください。 – Gavin

2

構文と理解が多少間違っているため、forEach()のドキュメントをもう少し読む必要があります。

$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()反復変数に配列の各キーを渡す - この場合、$sub_arrayに(適切な名前、自分のアレイがサブアレイが含まれているため)。だから、ループ本体の中で、あなたが調べる必要があるのです。

+0

あなたのご意見ありがとうございます。そして、はい、あなたは正しいのですか?しかし、私の例では '$ obj'も使用しました。この値を取得することは可能ですか?上記の答えのコメントをご覧ください。 –

+0

あなたの 'forEach'構文は間違っていますので、あなたが書いたものを正確に使うのは難しいです。私のように '$ sub_array'ではなく' $ obj'を使いたいと思うようです。私の例はあなたの目的に適応するのがとても簡単だと思っていたはずです。あなたが明示的に私にこれを示すように編集してもらいたいなら、私に知らせてください。 – Utkanos

関連する問題