PHP: Как вывести под значения из многоуровневого массива (объект Stripe) - PullRequest
0 голосов
/ 05 ноября 2019

Я получаю объект ниже, который возвращается после получения идентификатора сеанса Stripe (объект называется $order).

Я могу печатать значения с первого уровня объекта, используя, например, print_r($order->id);

Как можно распечатать значения со второго уровня, например, сумму или валюту?
Я пытался print_r($order->display_items->amount); и print_r($order->display_items['amount']);

PHP:

Stripe\Checkout\Session JSON: { 
    "id": "some_id", 
    "object": "checkout.session", 
    "billing_address_collection": null, 
    "cancel_url": "some_url", 
    "client_reference_id": null, 
    "customer": "some_id", 
    "customer_email": null, 
    "display_items": [{
        "amount": 2990, // this is what I need
        "currency": "eur", // this is what I need
        "custom": {
            "description": null, 
            "images": null, 
            "name": "some_product"
        },
        "quantity": 1, 
        "type": "custom"
    }], 
    "livemode": false, 
    "locale": "en", 
    "mode": "payment", 
    "payment_intent": "some_id", 
    "payment_method_types": [ "card" ], 
    "setup_intent": null, 
    "submit_type": null, 
    "subscription": null, 
    "success_url": "some_url"
}

Обновление: Если я использую print_r($order->display_items);, я получаю следующее. Могу ли я присвоить это массиву, а затем распечатать оттуда (если нет другого решения)?

Array ( [0] => Stripe\StripeObject Object ( [amount] => 2990 [currency] => eur [custom] => Stripe\StripeObject Object ( [description] => [images] => [name] => some_product ) [quantity] => 1 [type] => custom ) )

Большое спасибо заранее.

1 Ответ

2 голосов
/ 05 ноября 2019

print_r($obj->display_items[0]->amount);

Просто убедитесь, что ваш JSON действителен :) https://jsonlint.com/

...