PHP - 从JSON中提取数据

时间:2017-06-08 00:06:42

标签: php json

我有一个JSON文件,我正在努力获取数据。这是JSON。

{"data":[
        {"tag":"operatingrevenue","value":215639000000.0},
        {"tag":"totalrevenue","value":215639000000.0},
        {"tag":"operatingcostofrevenue","value":131376000000.0},
        {"tag":"totalcostofrevenue","value":131376000000.0},
        {"tag":"totalgrossprofit","value":84263000000.0},
        {"tag":"sgaexpense","value":14194000000.0},
        {"tag":"rdexpense","value":10045000000.0},
        {"tag":"totaloperatingexpenses","value":24239000000.0},
        {"tag":"totaloperatingincome","value":60024000000.0},
        {"tag":"otherincome","value":1348000000.0},
        {"tag":"totalotherincome","value":1348000000.0},
        {"tag":"totalpretaxincome","value":61372000000.0},
        {"tag":"incometaxexpense","value":15685000000.0},
        {"tag":"netincomecontinuing","value":45687000000.0},
        {"tag":"netincome","value":45687000000.0},
        {"tag":"netincometocommon","value":45687000000.0},
        {"tag":"weightedavebasicsharesos","value":5470820000.0},
        {"tag":"basiceps","value":8.35},
        {"tag":"weightedavedilutedsharesos","value":5500281000.0},
        {"tag":"dilutedeps","value":8.31},
        {"tag":"weightedavebasicdilutedsharesos","value":5471500000.0},
        {"tag":"basicdilutedeps","value":8.35},
        {"tag":"cashdividendspershare","value":2.18}]

我使用

将其转换为数组
$data = json_decode($jsondata, true);

然后我可以通过以下方式提取数据:

$operatingRevenue = $data['data'][0]['value'];
$totalrevenue = $data['data'][1]['value'];
然而,

等,我想使用标签名称而不仅仅是订单,以防订单在JSON中发生变化。像

这样的东西
$operatingRevenue = $data['data']['operatingRevenue'];

2 个答案:

答案 0 :(得分:1)

迭代$data数组,并将数组中新元素的键设置为tag元素,并将其值设置为value元素。

foreach($data['data'] as $v)
    $array[$v['tag']] = $v['value'];

$array包含您想要的内容,访问方式如下:$array['operatingRevenue']

答案 1 :(得分:0)

迭代$ data并使用array_push。 在这里阅读。 https://www.w3schools.com/php/func_array_push.asp

Node* newNode = new Node();
newNode->data = data;
newNode->next = nullptr;