php - 计算嵌套数组中的元素数量
问题描述
在 for 循环中,我试图计算从 JSON 提要解码的嵌套数组中的航班数量。不幸的是,当有更多航班可用时,它只显示 2 个航班。我究竟做错了什么?
来自端点的 Json 提要示例
{
"response": [
{
"flight": {
"number": "6204",
"iata_number": "HV6204",
"icao_number": "TRA6204"
}
},
{
"flight": {
"number": "7012",
"iata_number": "TB7012",
"icao_number": "JAF7012"
}
},
{
"flight": {
"number": "6652",
"iata_number": "HV6652",
"icao_number": "TRA6652"
}
},
{
"flight": {
"number": "1925",
"iata_number": "W61925",
"icao_number": "WZZ1925"
}
},
{
"flight": {
"number": "5075",
"iata_number": "W65075",
"icao_number": "WZZ5075"
}
},
{
"flight": {
"number": "4289",
"iata_number": "W64289",
"icao_number": "WZZ4289"
}
},
{
"flight": {
"number": "7861",
"iata_number": "W67861",
"icao_number": "WZZ7861"
}
},
{
"flight": {
"number": "3066",
"iata_number": "FR3066",
"icao_number": "RYR3066"
}
}
]
} .
PHP 代码示例
<?php
$url = 'https://api.endpoint'; // path to JSON file
$data = file_get_contents($url);
$flights = json_decode($data, true);
for($i=0; $i<=count($flights['response'][0]['flight']['iata_number']); $i++) {
echo "Flightnumber" . $flights['response'][$i]['flight']["iata_number"] . '<br/>';
}
?>
非常感谢任何帮助
解决方案
这里真正应该使用的是foreach
. foreach
你不必关心你count()
的数组:
$url = 'https://api.endpoint'; // path to JSON file
$data = file_get_contents($url);
$flights = json_decode($data, true);
foreach ($flights['response'] as $item) {
echo $item['flight']['iata_number'] . '<br />';
}
简单的演示在这里。
如果您仍想使用for
-loop,它应该如下所示:
for ($i = 0; $i < count($flights['response']); $i++) {
echo $flights['response'][$i]['flight']['iata_number'] . '<br />';
}
推荐阅读
- python-3.x - 询问用户列表的长度 (n)。生成 n 个整数的线性列表。在每个偶数值后插入一个零。打印新列表
- c++ - 无法移动 std::any
- python - 在 virtualenv 中使用 pip install 时出现 UnicodeDecodeError
- date - 有两个不同的字符串代表两个不同的配置单元表中的日期,我想用它们来加入
- android - 如何通过蓝牙 (LE) 将图像传输到桌面应用程序
- python - 使用 JSON 格式的数据读取 tar 文件时增加的记录
- tensorflow - 如何在使用 tensorflow 进行迁移学习的模型前添加几层
- amazon-web-services - 在 AWS CloudFormation 中,布尔值和布尔值字符串可以互换吗?
- javascript - 用于自动完成功能的 RegEx
- jquery - 如何为 HTML5 SVG 路径的过滤器设置动画以实现发光/模糊/阴影效果?