2017-01-18 14 views
0

にcomplexObjectArrayの変換私は、次のような出力を持っていたスクリプトがあります。使用可能なアレイ

enter image description here

私は前に経験していませんでした何かです。通常は結果は配列となり、次にを使って配列に変換するstdClass Objectとなります。しかし、これは余分に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>'; 
    } 
?> 
+0

はご協力いただきありがとうございます、私は '致命的なエラーが表示されます内の配列としてのタイプはstdClassのオブジェクトを使用することはできませんだけで、これまで1がある場合$ordersを定義するときに0が含まれますC:\ xampp \ htdocs \ test.php on line 7'と入力してください。何か案は? –

+1

多分 '$ orders = $ result-> result-> complexObjectArray; – AbraCadaver

+0

完璧、ありがとう。私はそれをマークすることができるように答えてください。 –

答えて

0

$resultオブジェクトの整数インデックス配列であるcomplexObjectArrayプロパティを持つオブジェクトであるresultプロパティを持つオブジェクトです。だから、:そして、

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

echo $orders[0]->customer_id; 

つ以上の項目が配列に存在する場合、あなたはそれをループする必要があります。その後

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

echo $orders->customer_id; 
関連する問題