来自API调用的PHP对象数组

我做了一个API调用$client->orders->get() ,我得到了一个格式如下的响应:

Array ( [0] => stdClass Object ( [id] => 5180 [order_number] => 5180 [created_at] => 2016-12-21T14:50:08Z [updated_at] => 2016-12-21T15:01:51Z [completed_at] => 2016-12-21T15:01:52Z [status] => completed [currency] => GBP [total] => 29.00 [subtotal] => 29.00 [total_line_items_quantity] => 1 [total_tax] => 0.00 [total_shipping] => 0.00 [cart_tax] => 0.00 [shipping_tax] => 0.00 [total_discount]...........

所以我循环访问数据:

foreach ( $client->orders->get() as $order ) {

// skip guest orders (e.g. orders with customer ID = 0)
print_r($order);
    echo $order[0];
    echo $order->subtotal;
}

我遇到的麻烦是输出数据,如果我使用print_r函数,我会得到一个输出,但我不知道如何访问数组中的单个元素。

如果我尝试:

echo $order[0].[id];

我得到:

可捕获致命错误:类stdClass的对象无法转换为字符串。

我已经在这方面进行了高低调查,但我无法找到任何我理解的东西。 请帮助... :)


下面循环中的$order

foreach ( $client->orders->get() as $order ) { .. }

是属于这个$client->orders->get()数组的每个元素,它们都是对象的形式。

从而输出(例如, subtotal条目)你echo $order->subtotal

foreach ( $client->orders->get() as $order ) { $order->subtotal }
  • echo $order[0] (在循环中)是无效的,因为这样做是将$order视为一个数组,同时它的类型是对象。 做$order->somefields来引用它的属性。
  • print_r($order) (在循环内部)是有效的,因为您可以使用print_r来打印对象的属性。
  • $client->orders->get()[0]->subtotal (如果放在循环之外)也是有效的。
  • 以防万一数组的元素包含对象或数组的形式

    $myarray = $client->orders->get();
    
  • // True because the first element is object echo (is_object($myarray[0])) ? 'True':'False';

  • // False because the first element is object, not an array echo is_array($myarray[0]) ? 'True':'False';

  • 并为此

    // the same with echo is_array($client->orders->get()) ? 'True':'False';
    echo is_array($myarray) ? 'True':'False';
    

    肯定会是这样,。


    您可以在不使用foreach循环的情况下访问小计列值。 这是代码。

    $response = $client->orders->get();
    $subtotal = $response[0]->subtotal;
    

    如果你想使用foreach,那么你可以像这样访问。

    foreach ( $client->orders->get() as $order ) {
     echo $order->order_number;
    }
    
    链接地址: http://www.djcxy.com/p/64869.html

    上一篇: PHP Object Array from API call

    下一篇: How to access object of numeric indexed array in php