当一些数据发生变化时,如何用PHP从JSON中提取和访问数据?

6ss1mwsb  于 2023-01-08  发布在  PHP
关注(0)|答案(1)|浏览(130)

我试图将一些API数据带到WordPress中的一个目录中。我试图获得的数据只是加密硬币价格,没有其他信息,但因为它的格式是嵌套的(?),它似乎不起作用。

{
  "bitcoin": {
    "usd": 16808.82 
  }
}

这是我的代码:

<?php
$handle = curl_init();
$url = get_post_meta($entity-\>post()-\>ID, '\_drts_field_004', true);

// Set the url
curl_setopt($handle, CURLOPT_URL, $url);
// Set the result output to be a string.
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);

$output = curl_exec($handle);
         
curl_close($handle);

$data = json_decode($output);
echo $output;
var_dump($data);

结果如下:

{
    "bitcoin":{
        "usd":16833.02
        }
}    
object(stdClass)#10399 (1) { 
    ["bitcoin"]=> object(stdClass)#10492 (1) { 
        ["usd"]=> float(16833.02) 
        } 
}

在这个例子中,我只是在16833.02之后,我尝试对很多不同的硬币这样做,"美元"将永远是相同的,但"比特币"将改变时,其他硬币。我怎么能只呼应数字?
我尝试了很多回声的变化,但无法得到它?是否可以这样做:

echo $data['bitcoin']['usd'];

而不是用比特币 *?任何东西都可以存在?

5gfr0r5j

5gfr0r5j1#

您可以通过将JSON解码为数组而不是像这样的对象来访问usd

$data = json_decode($output, true);
$usd = current($data)['usd'];

相关问题