使用php获取多维数组的值

时间:2016-08-03 09:25:55

标签: php arrays json

我想从多维数组中获取数组的值。假设我有来自API的json响应,我在php中使用json_decode()函数解码,我想使用循环来迭代数据。

$string = $response;
$json_a = json_decode($string, true);


foreach($json_a['withdrawals'] as $item) {

    echo $item['withdrawalId']['amount']['currencyCode']. '<br/>';
    echo $item['withdrawalId']['terminal']['tid']. '<br/>';
    echo $item['withdrawalId']['user']['mid']. '<br/>';
    echo $item['servicefee']['masterMerchant']['name']. '<br/>';
    echo $item['servicefee']['masterMerchant']['address']['address1']. '<br/>';
    }
}

print_r($json_a);

这是打印出的数组。

 {
  "limit": 1,
  "offset": 0,
  "totalTransactionsCount": 5040,
  "acceptedTotalTransactionsCount": 4428,
  "acceptedTotalTransactionsValue": 2438928.04,
  "rejectedTotalTransactionsCount": 612,
  "rejectedTotalTransactionsValue": 499294.04,
  "withdrawals": [
    {
        "withdrawalId": "764353634316",
        "status": "approval",
        "dateTime": "2016-04-28T09:31:38.145Z",
        "localDateTime": "2016-04-28 17:31:38",
        "accountType": "CURRENT",
        "additionalInfo": "approved",
        "batch": "000029",
        "smscount": 0
        "amount": {
                "currencyCode": "EUR",
                "value": "399.99"
        },
        "terminal": {
                "tid": "88133332",
                "serialNumber": "45435435"
        },
        "user": {
                "name": "John Doe",
                "email": "jmeter@joe.com",
                "phoneNumber": "546546546",
                "role": "OPERATOR",
                "subMerchant": {
                "name": "Submerchant XXY",
                "mid": "MID0000"
                    "serviceFee": {
                            "name": "rsf",
                            "merchantFee": "10.0"
                    },
                    "masterMerchant": {
                            "name": "Master Merchant",
                            "address": {
                                    "address1": "Mainstreet",
                                    "city": "Cork",
                                    "postcode": "Cork",
                            "country": {
                                   "countryName": "Philippines",
                                    "countryCode": "PH",
                                    "currencyName": "Philippines Peso",
                                    "currencyCode": "PHP",
                                }
                            }
                    },
                    "address": {
                        "address1": "Mainstreet",
                        "city": "Cork",
                        "postcode": "Cork",
                        "country": {
                                "countryName": "Philippines",
                                "countryCode": "PH",
                                "currencyName": "Philippines Peso",
                                "currencyCode": "PHP",
                            }
                    }
                }
        }
      }]}

1 个答案:

答案 0 :(得分:0)

这样写: -

$string = $response;
$json_a = json_decode($string, true);


    foreach($json_a['withdrawals'] as $item) {
        echo $item['withdrawalId']. '<br/>';

        echo $item['amount']['currencyCode']. '<br/>';
        echo $item['terminal']['tid']. '<br/>';
        echo $item['user']['mid']. '<br/>';
        echo $item['user']['masterMerchant']['name']. '<br/>';
        echo $item['user']['masterMerchant']['address']['address1']. '<br/>';
        }
    }

    print_r($json_a);