stdClass Object - разбить на таблицу - PullRequest
0 голосов
/ 07 марта 2020

Я использую API GoCardless для создания подписки. Я создал его и сейчас пытаюсь показать платежи в таблице.

API возвращает объект stdClass с предстоящими платежами в массиве. Как я могу показать их в таблице?

 $SUBS=$client->subscriptions()->get("$SUB");


 Subscription Class
stdClass Object
(
    [id] => SB00024BNFEEHX
    [created_at] => 2020-03-07T20:20:05.025Z
    [amount] => 5998
    [currency] => GBP
    [status] => active
    [name] => 
    [start_date] => 2020-03-12
    [end_date] => 
    [interval] => 1
    [interval_unit] => monthly
    [day_of_month] => 
    [month] => 
    [count] => 
    [metadata] => stdClass Object
        (
            [subscription_number] => 
        )

    [payment_reference] => 
    [upcoming_payments] => Array
        (
            [0] => stdClass Object
                (
                    [charge_date] => 2020-03-12
                    [amount] => 5998
                )

            [1] => stdClass Object
                (
                    [charge_date] => 2020-04-14
                    [amount] => 5998
                )

            [2] => stdClass Object
                (
                    [charge_date] => 2020-05-12
                    [amount] => 5998
                )

            [3] => stdClass Object
                (
                    [charge_date] => 2020-06-12
                    [amount] => 5998
                )

Из других вопросов, которые я пробовал

$array = json_decode(json_encode($SUBS),true);
echo"$array";

Однако это просто отображает / печатает Array

1 Ответ

1 голос
/ 08 марта 2020

Вы хотите преобразовать его в object как array, поэтому будет работать простой набор типов

$SUBS=$client->subscriptions()->get("$SUB");
$SUBS = (array) $SUBS->upcoming_payments;

//for table
print '<table>';
foreach($SUBS as $SUB) {
   print '<tr><td>'.$SUB['charge_date'].'</td><td>'.$SUB['amount'].'</td></tr>';
}
print '<table>';
...