PHP如何从数组中提取值

3

我有一个数组,我可以通过以下方式从结果中获取一些详细信息:

$result["transaction"];

当进行此操作时,会显示以下内容:
{ "id": "wt13LbKmJ2",
  "location_id": "EYGMFA",
  "created_at": "2017-07-01T07:32:57Z",
  "tenders": 
    [ { "id": "C6xMF",
     "location_id": "MFA",
     "transaction_id": "NvDAOOA9",
     "created_at": "2017-07-01T07:32:57Z", 
    "note": "Offering",
     "amount_money": { "amount": 100, "currency": "USD" },                                       "processing_fee_money": { "amount": 33, "currency": "USD" },
     "customer_id": "14QEJXXM5TX",
     "type": "CARD", 
     "card_details": { "status": "CAPTURED", 
     "card": { "brand": "VI", "last_4": "0000" },
     "entry_method": "ON_FILE" 
    } } ], 
    "product": "EXTERNAL_API" }

我该如何让我的数组只显示 "100" 而不是 "amount":100? 如果我使用:

$result["transaction"]["id"]; 

它只会显示id,但我无法显示金额。


4
可能是如何使用PHP从JSON中提取数据?的重复内容。 - Rajdeep Paul
3个回答

1

$result['transaction']['tenders'][0]['amount_money']['amount']


1
使用以下代码来检查你的数据,并使用最后一行代码像这样输出 $data->tenders[0]->amount_money->amount;
<?php
$string='{ "id": "wt13LbKmJ2", "location_id": "EYGMFA", "created_at": "2017-07-01T07:32:57Z", "tenders": [ { "id": "C6xMF", "location_id": "MFA", "transaction_id": "NvDAOOA9", "created_at": "2017-07-01T07:32:57Z", "note": "Offering", "amount_money": { "amount": 100, "currency": "USD" }, "processing_fee_money": { "amount": 33, "currency": "USD" }, "customer_id": "14QEJXXM5TX", "type": "CARD", "card_details": { "status": "CAPTURED", "card": { "brand": "VI", "last_4": "0000" }, "entry_method": "ON_FILE" } } ], "product": "EXTERNAL_API" }';
$data=json_decode($string);
echo '<pre>';
print_r(json_decode($string));
echo '</pre>';
echo $data->id.'<br>';
echo $data->tenders[0]->id;
echo $data->tenders[0]->amount_money->amount;

?>

0

首先,您需要将$result 对象转换为数组,然后获取数据

像这样做

 $result=json_decode(json_encode($result,true),true);

那么

$result['transaction']['tenders'][0]['amount_money']['amount']

我觉得这会对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接