访问Array PHP的特定部分

时间:2014-03-03 02:22:08

标签: php arrays json

我一直在尝试访问此阵列的特定部分 - 没有运气。

{"id":"ch_103axT2Yi0i8jQz2P2D7If2f","object":"charge","created":1393812736,
"livemode":false,"paid":true,"amount":2000,"currency":"usd","refunded":false,
"card":{"id":"card_103axT2Yi0i8jQz2tEhrmDqQ","object":"card","last4":"4242",
"type":"Visa","exp_month":12,"exp_year":2014,"fingerprint":"LcHz1FF8ePddYI7R",
"customer":"cus_3axTh2yyzxxGdh","country":"US","name":"Jason Wallace",
"address_line1":"","address_line2":"","address_city":"","address_state":" ",
"address_zip":"","address_country":"US","cvc_check":"pass",
"address_line1_check":"pass","address_zip_check":"pass"},"captured":true,
"refunds":[],"balance_transaction":"txn_103axT2Yi0i8jQz2BTUXNFnB",
"failure_message":null,"failure_code":null,"amount_refunded":0,
"customer":"cus_3axTh2yyzxxGdh","invoice":null,"description":null,
"dispute":null,"metadata":[]}

我尝试访问的特定字段是[name,email,address_line1,address_line2,address_city,address_state,address_zip,address_country]。 Array是对象格式,我似乎无法正确使用语法。任何帮助,将不胜感激。感谢。

2 个答案:

答案 0 :(得分:0)

$json = '{"id":"ch_103axT2Yi0i8jQz2P2D7If2f","object":"charge","created":1393812736,
"livemode":false,"paid":true,"amount":2000,"currency":"usd","refunded":false,
"card":{"id":"card_103axT2Yi0i8jQz2tEhrmDqQ","object":"card","last4":"4242",
"type":"Visa","exp_month":12,"exp_year":2014,"fingerprint":"LcHz1FF8ePddYI7R",
"customer":"cus_3axTh2yyzxxGdh","country":"US","name":"Jason Wallace",
"address_line1":"","address_line2":"","address_city":"","address_state":" ",
"address_zip":"","address_country":"US","cvc_check":"pass",
"address_line1_check":"pass","address_zip_check":"pass"},"captured":true,
"refunds":[],"balance_transaction":"txn_103axT2Yi0i8jQz2BTUXNFnB",
"failure_message":null,"failure_code":null,"amount_refunded":0,
"customer":"cus_3axTh2yyzxxGdh","invoice":null,"description":null,
"dispute":null,"metadata":[]}';
$json_decode = json_decode($json);
echo $json_decode->card->address_country;

See it in action

答案 1 :(得分:0)

首先,您需要使用json_decode对Json数组进行解码,然后您将能够像下面这样访问数组。

/* The Json encoded data */
$json = '{"id":"ch_103axT2Yi0i8jQz2P2D7If2f","object":"charge","created":1393812736,
"livemode":false,"paid":true,"amount":2000,"currency":"usd","refunded":false,
"card":{"id":"card_103axT2Yi0i8jQz2tEhrmDqQ","object":"card","last4":"4242",
"type":"Visa","exp_month":12,"exp_year":2014,"fingerprint":"LcHz1FF8ePddYI7R",
"customer":"cus_3axTh2yyzxxGdh","country":"US","name":"Jason Wallace",
"address_line1":"","address_line2":"","address_city":"","address_state":" ",
"address_zip":"","address_country":"US","cvc_check":"pass",
"address_line1_check":"pass","address_zip_check":"pass"},"captured":true,
"refunds":[],"balance_transaction":"txn_103axT2Yi0i8jQz2BTUXNFnB",
"failure_message":null,"failure_code":null,"amount_refunded":0,
"customer":"cus_3axTh2yyzxxGdh","invoice":null,"description":null,
"dispute":null,"metadata":[]}';

/* Json decode the encoded data */    
$data = json_decode($json, true);
$data = $data['card'];

/* Return the wanted values */
echo 'name: '            . $data['name'];
echo 'address line 1: '  . $data['address_line1'];
echo 'address line 2: '  . $data['address_line2'];
echo 'address city: '    . $data['address_city'];
echo 'address state: '   . $data['address_state'];
echo 'address zip: '     . $data['address_zip'];
echo 'address country: ' . $data['address_country'];
相关问题