2015-12-10 113 views
0

我對這個網站完全陌生,所以如果我的文章格式不正確,我很抱歉。如何從多維json數組中獲取數值

無論如何,我有我的期望是一個相當簡單的問題。我從一個「請求主體」 - 陣列,啄提取值,我得到了多數什麼,我需要使用這4行代碼:

$payment_id = strval($callback_json->id); 
$order_id = strval($callback_json->order_id); 
$currency = strval($callback_json->currency); 
$card_brand = strval($callback_json->metadata->brand); 

我現在的問題是,我已經用完了人才當試圖獲得似乎是「操作」的「子變量」的「數量」值時。

我試着做這樣的,但他們都沒有工作:

$amount_total = strval($callback_json->operations[amount]); 
$amount_total = strval($callback_json->operations->amount); 

所以我的問題是現在;我如何格式化這行以獲得值「69500」。

我真的很希望有人能幫助我! :-)

{ 
    "id":9256797, 
    "order_id":"23322651466", 
    "accepted":true, 
    "type":"Payment", 
    "text_on_statement":null, 
    "branding_id":null, 
    "variables":{}, 
    "currency":"DKK", 
    "state":"new", 
    "operations":[{ 
     "id":1, 
     "type":"authorize", 
     "amount":69500, 
     "pending":false, 
     "qp_status_code":"20000", 
     "qp_status_msg":"Approved", 
     "aq_status_code":"20000", 
     "aq_status_msg":"Approved", 
     "data":{}, 
     "callback_url":"http://requestb.in/105y8k81", 
     "callback_success":null, 
     "callback_response_code":null, 
     "created_at":"2015-12-05T12:40:40+00:00" 
     }], 

"metadata":{ 
    "type":"card", 
    "brand":"visa", 
    "last4":"0008", 
    "exp_month":11, 
    "exp_year":2016, 
    "country":"DNK", 
    "is_3d_secure":false, 
    "hash":"6f976a4e388928beb4ad3OrQHCS2LDGNAFZVK3i54p6q8heV0RRci", 
    "number":null, 
    "customer_ip":"2.110.77.40", 
    "customer_country":"DK", 
    "fraud_suspected":false, 
    "fraud_remarks":[] 
} 

回答

1

使用

$amount_total = strval($callback_json->operations[0]->amount); 

[因爲在JSON爲陣列的開放標籤。

{'foo':[{'bar':"A"},{'bar':"B"}]} 
$val->foo[0]->bar; # A 
$val->foo[1]->bar; # B 

希望有幫助。

+0

哇,這是快速f * ck:D它的工作......謝謝噸,男人! :-) – spazoid