将complexObjectArray转换为可用数组

时间:2017-01-18 19:56:31

标签: php arrays object

我有一个脚本,其输出如下所示:

enter image description here

这是我之前没有经历过的事情。通常结果是数组,然后是我使用stdClass Object转换为数组的(array) $result。这个似乎是嵌套了2次,所以我不知道如何访问它,以便我可以将每个对象变成一个数组。

因此,我需要能够实现的是,如果我使用代码echo $orders[0]->customer_id,结果将是716'。

请问有人可以提供建议吗?如果需要,我的代码如下。非常感谢你。

<?php
    $client= new SoapClient('*Magento URL*');
    $session_id = $client->login((object)array('username' => '*Magento Username*', 'apiKey' => '*Magento Password*'));

    try {
        $result = $client->salesOrderList((object)array('sessionId' => $session_id->result, 'filters' => null)); 
        $orders = (array) $result;

        echo '<pre>', print_r($orders), '</pre>';

    } catch (SoapFault $e) {
        echo 'Error: ', $e->getMessage(), '<hr>';
    }
?>

1 个答案:

答案 0 :(得分:0)

$result是一个具有result属性的对象,该属性是具有complexObjectArray属性的对象,该属性是整数索引的对象数组。所以:

$orders = $result->result->complexObjectArray;

然后:

echo $orders[0]->customer_id;

如果数组中有多个项目,那么您需要循环它。如果只有一个,那么在定义0时包含$orders

$orders = $result->result->complexObjectArray[0];

然后:

echo $orders->customer_id;