2013-12-09 3 views
0

XML 객체를 응답으로 얻는 API 프로젝트에서 작업하고 있습니다. 응답은 NewOrder 객체 (아래)에 하나 이상의 제품을 포함 할 수 있습니다. 그러나 foreach 루프를 사용하여 정보를 표시하려고 할 때 하나의 항목 만있는 경우에는 중단됩니다. 그것은 인덱스 [0] object.How 개체가 없기 때문에 xml 개체 및 디스플레이를 통해 내가 존재할 수 없기 때문에 그것은 것 같아요. 또는 개체에 인덱스 [0]을 어떻게 추가합니까?xml 객체의 데이터에 액세스하는 적절한 방법은 무엇입니까

object(stdClass)#49 (1) { 
["NewOrder"] => object(stdClass)#50 (12) { 
["BTN"] => string(10) "XXXXXXXXXXXXXXXxx" 
["PreOrderTransactionId"] => string(22) "XXXXXXXX" 
["PartnerOrderId"] => string(17) "XXXXXXXXXXX" 
["QwestOrderId"] => string(9) "N57395699" 
["SalesCode"] => string(7) "XXXXXXXX" 
["OrderStatus"] => string(7) "Pending" 
["OrderStatusCode"] => string(4) "OPEN" 
["OrderStatusSourceSystem"] => string(5) "CPLUS" 
["OrderStatusMessage"] => string(0) "" 
["OrderStatusDate"] => string(10) "2013-12-09" 
["OrderStatusTime"] => string(8) "08:02:30" 
["ProductFamily"] => array(3) { 
    [0] => object(stdClass)#51 (2) { 
    ["ProductFamilyName"] => string(7) "BUNDLE+" 
    ["ProductLines"] => object(stdClass)#52 (3) { 
     ["WTN"] => string(10) "3033689919" 
     ["AppointmentDate"] => string(10) "2013-12-20" 
     ["Products"] => object(stdClass)#53 (5) { 
     ["ProductName"] => string(36) "INTERNET 100+ MBPS & HOME PHONE PLUS" 
     ["Usoc"] => string(5) "BBBVC" 
     ["Quantity"] => string(1) "1" 
     ["Action"] => string(1) "I" 
     ["Status"] => string(4) "OPEN" 
     } 
    } 
    } 
} 
} 
} 

나는 시도 다음 그러나 그것은 작동하지 않았다 :

if (!is_array($this->Orders->NewOrder)) { 
$this->Order->NewOrder = array($this->Orders->NewOrder["NewOrder"]); 

} 
foreach ($this->Orders->NewOrder as $order){?> 

나는 다음과 같은 오류가 점점 오전 : 치명적인 오류 :

답변

1

에 배열로 입력 stdClass의 개체를 사용할 수 없습니다 나는 당신의 NewOrder가 하나 이상의 객체를 포함하고있는 경우에만 배열이라고 생각합니다. 루프 앞에 다음과 같은 것을 사용하십시오.

if (!is_array(yourObject["NewOrder"])) { 
    yourObject["NewOrder"] = array(yourObject["NewOrder"]); 
} 
+0

다른 제안 사항이 있습니까? – user1960170

0

SoapClient에는 여기에 하나의 요소 만있는 경우에도 항상 배열을 만드는 옵션이 있습니다.

return new SoapClient(
    '...', 
    array(
    'location' => '...', 
    /.../ 
    'features' => SOAP_SINGLE_ELEMENT_ARRAYS 
) 
); 
관련 문제