【问题标题】:Add parameters from variable to extract json data从变量中添加参数以提取 json 数据
【发布时间】:2017-11-11 12:52:37
【问题描述】:

我正在使用一个 API 来提取机场信息数据并以 json 的形式打印数据。

我正在使用 json_decode() 将此 json 存储到一个数组中(我正在使用 ,true)

我有一个循环来检查到达飞机的数量,它成功了,因为如果有 15 架到达,它可以打印出 15 次文本字符串。但是,在解码 json 时,我需要使用参数来获取信息。例如,如果我想知道有多少到达,我需要这样做:

$jsonDecode = json_decode($json_file, true);
print_r($jsonDecode['AirportBoardsResult']['arrivals']['num_flights']);

这给出了有多少到达,结果可以像这样放入一个变量中:

$arrivals = $jsonDecode['AirportBoardsResult']['arrivals']['num_flights'];

如果我打印它,它将打印正确的整数。 但是,要获取第一个航班的航班号,您需要这样做:

$flightnumber = $jsonDecode['AirportBoardsResult']['arrivals']['flights']['0']['ident'];

“0”是第一个航班,“1”是第二个航班,以此类推... 我尝试创建一个for循环来获取所有到达的航班号,代码如下:

$initialCode = $jsonDecode['AirportBoardsResult']['arrivals']['flights'];

for($arrivalInt = $arrivals; $arrivalInt > 0; $arrivalInt--) {
    $flightnumbers = $initialCode . $arrivalInt . 'ident';
    echo $flightnumbers;
}

但这似乎不起作用。我尝试使用 array_push 在末尾添加 $arrivalInt 和“ident”,但没有。我试着这样做:

for($arrivalInt = $arrivals; $arrivalInt > 0; $arrivalInt--) {
    $flightnumbers = $initialCode . "[" . "'" . $arrivalInt . "'" . "]" . "[" . "'" . "ident" . "'" . "]";
    echo $flightnumbers;
}

但结果相同 :( 我得到的结果只是 $initialCode 的回声。

基本上我只是想将参数添加到json_decode的末尾。

任何帮助表示赞赏:)

【问题讨论】:

  • 我认为你错过了参数
  • $arrivals = $jsonDecode['AirportBoardsResult']['arrivals']['flights'];
  • 我想将参数['$arrivalInt']添加到$jsonDecode的末尾,基本上是从变量或整数中添加数据到$jsonDecode的末尾
  • 哦,我为此使用了 $initialCode,因为这是数据提取所必需的。然后我尝试添加到其中包含 json_decode 的 $initialCode。
  • 这比你想象的要简单得多。只需使用foreach($initialCode as $flight) {$flightnumber = $flight['ident']; echo $flightnumber;}

标签: php arrays json


【解决方案1】:

感谢@jh1711 的回答!

我应该改用 foreach 循环,如下所示:

foreach($initialCode as $flight) {
  $flightnumber = $flight['ident'];
  echo $flightnumber;
}

【讨论】:

    猜你喜欢
    • 2018-11-25
    • 2022-01-12
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    相关资源
    最近更新 更多