0

私はPHPでこの多次元配列を持っています:

array(4) { 
["took"]=> int(2) 
["timed_out"]=> bool(false) 
["_shards"]=> array(3) { 
    ["total"]=> int(5)
    ["successful"]=> int(5)
    ["failed"]=> int(0) 
} 
["hits"]=> array(3) { 
    ["total"]=> int(3) 
    ["max_score"]=> float(2.3578677) 
    ["hits"]=> array(1) { 
        [0]=> array(5) { 
            ["_index"]=> string(13) "telephonebook" 
            ["_type"]=> string(6) "person" 
            ["_id"]=> string(22) "M5vJJZasTGG2L_RbCQZcKA" 
            ["_score"]=> float(2.3578677) 
            ["_source"]=> array(8) { 
                ["Mob"]=> string(19) "XXX" 
                ["Title"]=> string(13) "Analyst" 
                ["Department"]=> string(8) "Analysis" 
                ["Country"]=> string(6) "Sweden" 
                ["Tlf"]=> string(0) "" 
                ["Name"]=> string(16) "XXX" 
                ["Email"]=> string(29) "XX@retro.com" 
                ["thumbnailPhoto"]=> string(0) "" 
            } 
        } 
    } 
} 

}

配列には「ヒット」内にいくつかの「ヒット」があり、「_source」内のものをループして出力したいと考えています。いくつかの異なるアプローチを試しましたが、これを行う方法がわかりません。私を助けてください。

4

4 に答える 4

2
foreach ($array['hits']['hits'][0]['_source'] as $key => $value) {
    //do stuff
}
于 2013-04-17T13:04:13.817 に答える
1

これで対処できると思います。$the_array_you_provided を「メイン」配列変数に置き換えます (投稿で指定していません)。

$hits = $the_array_you_provided['hits']['hits'];

foreach ($hits as $hit) {
    echo $hit['_source']['Title'];

    //print everything in the array
    //print_r($hit['_source']);
}

どんな助けでもお気軽にお尋ねください。

于 2013-04-17T13:07:22.447 に答える
1

これを試して

foreach ($arr['hits']['hits'] as $val) 
{
   echo $val['_source']['Mob'];

}

このような

于 2013-04-17T13:07:25.787 に答える