循环访问 JSON 对象中的数组


Iterating over an array inside a JSON Object

这是我尝试迭代的以下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"属性的每次外观?

您正在迭代AS->Results项,其中只有一个。您希望直接遍历Suggests数组:

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

我不知道Results数组中是否可以有多个项目。也许您需要首先迭代它们以选择要迭代的正确Suggests项。