Foreach循环Json数组

时间:2019-08-20 09:34:22

标签: php json

此刻,我正在学习与Json的合作,我已经弄清楚了如何在当前空间中显示Name和Craft的数据。 我不知道如何显示人数。

不正确,我收到错误消息

foreach ($json_data['number'] as $key => $value) {
    echo $value;
}

也不起作用

foreach($json_data as $key=>$value)
{
    echo $key['number'];
}
// Read JSON file
$json = file_get_contents('http://api.open-notify.org/astros.json');
//Decode JSON
$json_data = json_decode($json,true);

HTML

<table>
    <tr>
        <th>Name</th>
        <th>Craft</th> 
    </tr>
<?php foreach($json_data['people'] as $key=>$value): ?>
    <tr>
        <td><?php echo $value['name']; ?></td>
        <td><?php echo $value['craft']; ?></td>
    </tr>
<?php endforeach; ?>
</table>

我想通过使用foreach循环显示空间中的人数

2 个答案:

答案 0 :(得分:0)

foreach用于遍历array。在您的JSON输出中,number不会作为数组返回,因此您不需要使用foreach循环来显示数字。您可以使用以下代码显示数字:

<?php echo $json_data['number']; ?>

答案 1 :(得分:0)

将代码更改为

<?php
// Read JSON file
$json = file_get_contents('http://api.open-notify.org/astros.json');

//Decode JSON
$json_data = json_decode($json,true);
$peopleCount = 0;
?>
    <table>
        <tr>
            <th>Name</th>
            <th>Craft</th>
        </tr>
    <?php foreach($json_data['people'] as $key=>$value):
        $peopleCount++;
        ?>
        <tr>
            <td><?php echo $value['name']; ?></td>
            <td><?php echo $value['craft']; ?></td>
        </tr>
    <?php endforeach; ?>
    </table>
<?php
echo "Total People count: ". $peopleCount;

说明:

$peopleCount变量保存人数。 首先,它的值为0

遍历数组时,$peopleCount的值将递增1$peopleCount++;等于$peopleCount = $peopleCount +1;

PS: 您的代码在第8行缺少PHP关闭标记。我已将其修复。