2

これは、反復しようとしている次の JSON 構造です

{
   "AS":{
      "Query":"vi",
      "FullResults":1,
      "Results":[
         {
            "Type":"AS",
            "Suggests":[
               {
                  "Txt":"videos",
                  "Type":"AS",
                  "Sk":""
               },
               {
                  "Txt":"vipjatt",
                  "Type":"AS",
                  "Sk":"AS1"
               },
               {
                  "Txt":"vit",
                  "Type":"AS",
                  "Sk":"AS2"
               },
               {
                  "Txt":"vijaya bank",
                  "Type":"AS",
                  "Sk":"AS3"
               },
               {
                  "Txt":"videocon d2h",
                  "Type":"AS",
                  "Sk":"AS4"
               },
               {
                  "Txt":"visarev",
                  "Type":"AS",
                  "Sk":"AS5"
               },
               {
                  "Txt":"vijaya karnataka",
                  "Type":"AS",
                  "Sk":"AS6"
               },
               {
                  "Txt":"video songs",
                  "Type":"AS",
                  "Sk":"AS7"
               }
            ]
         }
      ]
   }
}

そして、これは私がそれを反復するために使用し、「Txt」プロパティにアクセスしようとしているコードです

$data = $info->get($url);
$content = json_decode($data);
$i = 0;
foreach($content->AS->Results as $item) {
$each = $item->Suggests[$i]->Txt;
    $i++;
    echo $each;
}

しかし、「Txt」プロパティの最初の出現にしかアクセスできません。私のコードの何が問題なのですか? 「Txt」プロパティのすべての外観を印刷しないのはなぜですか??

4

1 に答える 1

3

AS->Resultsアイテムを繰り返し処理していますが、そのうちの 1 つだけです。Suggests配列を直接反復したい:

foreach ($content->AS->Results[0]->Suggests as $item) {
    echo $item->Txt;
}

Results配列に複数の項目が存在する可能性があるかどうかはわかりません。Suggestsおそらく、最初にそれらを反復して、反復する適切なアイテムを選択する必要があります。

于 2012-06-10T10:45:58.377 に答える