2012-02-03 15 views
0

PHPでforeachループを使って "product"値を取得する方法を知っていますか?ネストした配列からデータを取得する方法

Array 
(
    [0] => Array 
     (
      [product] => "Sony" 
     ) 

    [1] => Array 
     (
      [product] => "Toshiba" 
     ) 

    [2] => Array 
     (
      [product] => "A4Tech" 
     ) 

) 

これは私のコードであり、試した後に動作しないことが分かっています。

foreach($response as $key => $value){   

    foreach($key as $pic_small => $value2){ 

    echo $pic_small; 
    } 
} 

答えて

4
foreach($response as $item) 
    echo $item['product']; 

PS:OK、foreach文はとても代わり$key => $valueのみ$valueの、$応答配列のすべての最初のレベル要素を取り、それに等しい変数$アイテム(あなたは要素のインデックスを必要としないを設定使用することができます)。最初のループでは$item = array('product' => 'Sony');と同じですが、2番目のループでは$item = array('product' => 'Toshiba');と同じです。

もちろん、2番目のforeachループを使用してこれらの配列を処理することはできますが、キーproductを持つ1つの関連要素の値が必要な場合は、$item['product']の値を使用して直接アクセスできます。それは別の答えに示されているよう

そうでない場合、あなたは文を書くために

// $item1 means element of the first level in the original array 
// $key2 and $value2 are keys and values of the second level elements 
foreach($response as $item1) 
    foreach($item1 as $key2 => $value2) // you may remove '$key2 =>' here 
     echo $value2; 
+0

ケアとしてそれをやっことができますか?それは横行しているが、実際にはStackoverflowをコードダンプに変えるスタイルではない。 – mario

+0

@marioしかし、コードはそれが何の説明も必要としないほど明らかです。 – Cheery

+0

非常にそうです。しかし明らかにOPにはならない。 – mario

0
foreach($response as $key => $value){   

    foreach($value as $title => $value2){ 

     echo $value2; 
    } 
} 
+1

それは正しい答えです。それ以外にも説明部分が欠けている。 – mario

関連する問題