PHP-在没有“JSON数组”的情况下循环使用JSON数组;字符串”;


PHP - Looping through JSON Array without "string"?

所以我有问题。我有一个JSON数组

以下是JSON:http://pastebin.com/raw/XEzAEdfg

我怎么能把它循环一遍?以下是我目前尝试的内容:

$output = json_decode($result2);
foreach($output as $SuiFag){
    echo $SuiFag->aaData[6];
}
?>

我想您的数据json数据应该是一个名为"aaData"的对象属性,类型为array,所以应该只有一个[字符,并且{和}应该定义json对象的开始和结束(不允许使用traling逗号):

$result2='{
   "aaData": [
         "Knife",
         "/id/1676/",
         "★ Karambit | Stained (Field-Tested)<'/a>",
         "234.87",
         "224.85",
         "5907380460<'/a>",
         "0.2123493403<'/a>",
         "Inspect<'/a>"
      ]
}';

因此,您可以使用直接的对象属性访问(您需要foreach来扫描数组,但不需要扫描对象的属性):

$output = json_decode($result2);
echo $output->aaData[6];

或如果你的json结构是这样的:允许):

$result2='{
    ...
   "aaData": [
        [
         "Knife",
         "/id/1676/",
         "★ Karambit | Stained (Field-Tested)<'/a>",
         "234.87",
         "224.85",
         "5907380460<'/a>",
         "0.2123493403<'/a>",
         "Inspect<'/a>"
        ],
        ...
    ]
}';

那么你的代码应该是:

$output = json_decode($result2);
foreach($output->aaData as $SuiFag){
    echo $SuiFag[6];
}

打印数组"aaData"中每个元素的第6个元素;

您需要循环遍历aaData数组,然后输出第6行。下面将输出每个aaData阵列的第6行

$output = json_decode($result2);
foreach($output as $SuiFag) {
    for($i=0; $i<count($SuiFag);$i++) {
        echo $SuiFag[$i][6] . '<br>';
    }
}
?>

当然,如果你想将阵列的每个项目都回显到,你可以添加第三个循环

$output = json_decode($result2);
foreach($output as $SuiFag) {
    for($i=0; $i<count($SuiFag);$i++) {
        for($x=0; $x<count($SuiFag[$i]);$x++) {
            echo $SuiFag[$i][$x] . '<br>';
        }
    }
}
?>

由于json中只有aaData,因此可以将其缩短为但以上允许在json数组中添加更多项目:

foreach($output->aaData as $SuiFag) {
    for($i=0; $i<count($SuiFag);$i++) {
        echo $SuiFag[$i] . '<br>';
    }
}

lamp76的积分