【问题标题】:Parsing JSON with foreach in PHP在 PHP 中使用 foreach 解析 JSON
【发布时间】:2020-07-12 12:38:11
【问题描述】:

我正在尝试从此 JSON 获取货币代码:

{
    "rates": {
        "CAD": 1.5617,
        "HKD": 8.4945,
        "ISK": 155.6,
        "PHP": 55.865,
        "DKK": 7.4674,
        "HUF": 360.02,
        "CZK": 27.312,
        "AUD": 1.7967,
        "RON": 4.8283,
        "SEK": 11.0613,
        "IDR": 17869.24,
        "INR": 82.8985,
        "BRL": 5.7001,
        "RUB": 85.9486,
        "HRK": 7.6255,
        "JPY": 118.9,
        "THB": 35.925,
        "CHF": 1.0585,
        "SGD": 1.5633,
        "PLN": 4.5506,
        "BGN": 1.9558,
        "TRY": 7.2063,
        "CNY": 7.7784,
        "NOK": 11.51,
        "NZD": 1.8417,
        "ZAR": 19.6095,
        "USD": 1.0956,
        "MXN": 26.1772,
        "ILS": 3.9018,
        "GBP": 0.88643,
        "KRW": 1341.03,
        "MYR": 4.733
    },
    "base": "EUR",
    "date": "2020-03-31"
}

我知道在 Python 中它只是:

for i in rates:
  print(i)

但是在 PHP 中我有一个问题。 我已经尝试过:

    $length = count($exchange);
    foreach (range(0, count($exchange)) as $currency) {
        echo $response['rates'][$currency]; 
    }

但这不起作用。它只是指费率[0] -> 费率[33]。我试图简单地打印没有偏移,但这也不起作用。

【问题讨论】:

  • foreach ($response['rates'] as $currency => $rate)
  • foreach ($rates as $currency => $rate)
  • 谢谢大家。有用。 :)

标签: php arrays json object


【解决方案1】:

确保您使用json_decode

$arr = '{
"rates": {
"CAD": 1.5617,
"HKD": 8.4945,
"ISK": 155.6,
"PHP": 55.865,
"DKK": 7.4674,
"HUF": 360.02,
"CZK": 27.312,
"AUD": 1.7967,
"RON": 4.8283,
"SEK": 11.0613,
"IDR": 17869.24,
"INR": 82.8985,
"BRL": 5.7001,
"RUB": 85.9486,
"HRK": 7.6255,
"JPY": 118.9,
"THB": 35.925,
"CHF": 1.0585,
"SGD": 1.5633,
"PLN": 4.5506,
"BGN": 1.9558,
"TRY": 7.2063,
"CNY": 7.7784,
"NOK": 11.51,
"NZD": 1.8417,
"ZAR": 19.6095,
"USD": 1.0956,
"MXN": 26.1772,
"ILS": 3.9018,
"GBP": 0.88643,
"KRW": 1341.03,
"MYR": 4.733
},
"base": "EUR",
"date": "2020-03-31"
}';

$array = json_decode($arr, true);

foreach ($array["rates"] as $k => $v) {
    echo $k . " => " . $v . "<br>";
}

输出

【讨论】:

  • 非常感谢,这正是我想要的。
  • 很高兴能帮上忙!
【解决方案2】:

在你的情况下,首先你需要decode the JSON string:

$json_array = json_decode($json_string, true);

之后,您必须只收取以下费用:

$rates = $json_array['orders'];

在你可以使用 foreach 遍历它的项目之后:

foreach ($rates as $rate) {
   echo $rate;
}

【讨论】:

    猜你喜欢
    • 2013-04-15
    • 2018-05-14
    • 2017-06-17
    • 1970-01-01
    • 2012-06-01
    • 2016-08-03
    • 2014-08-01
    • 1970-01-01
    • 2015-11-06
    相关资源
    最近更新 更多