从STD对象响应中打印相同参数的多个值


print multiple values for same parameter from an std object response

我想打印[0]和[1]中两个发货的[UpdateDescription]的值

这是发送的请求

$auth_call = $soapClient->TrackShipments($params);

发货编号在$params数组中发送

响应在

下面
stdClass Object
(
    [Transaction] => stdClass Object
        (
            [Reference1] => 
            [Reference2] => 
            [Reference3] => 
            [Reference4] => 
            [Reference5] => 
        )
    [Notifications] => stdClass Object
        (
        )
    [HasErrors] => 
    [TrackingResults] => stdClass Object
        (
            [KeyValueOfstringArrayOfTrackingResultmFAkxlpY] => Array
                (
                    [0] => stdClass Object
                        (
                            [Key] => 52398174132
                            [Value] => stdClass Object
                                (
                                    [TrackingResult] => stdClass Object
                                        (
                                            [WaybillNumber] => 52398174132
                                            [UpdateCode] => SH005
                                            [UpdateDescription] => Delivered
                                            [UpdateDateTime] => 2016-09-26T14:45:00
                                            [UpdateLocation] => New York
                                            [Comments] => Maz
                                            [ProblemCode] => 
                                        )
                                )
                        )
                    [1] => stdClass Object
                        (
                            [Key] => 43559827323
                            [Value] => stdClass Object
                                (
                                    [TrackingResult] => stdClass Object
                                        (
                                            [WaybillNumber] => 43559827323
                                            [UpdateCode] => SH008
                                            [UpdateDescription] => Shipment on Hold
                                            [UpdateDateTime] => 2016-09-28T10:18:00
                                            [UpdateLocation] => New York
                                            [Comments] => Na
                                            [ProblemCode] => 
                                        )
                                )
                        )
                )
        )
)

我目前能够使用下面的命令打印[UpdateDescription]的值,当只有1个发货时,因为响应

中没有[0]和[1]。
$description = $auth_call->TrackingResults-KeyValueOfstringArrayOfTrackingResultmFAkxlpY->Value->TrackingResult-UpdateDescription; 
print_r($description);

尝试使用foreach -loop:

foreach($auth_call->TrackingResults->KeyValueOfstringArrayOfTrackingResultmFAkxlpY as $tracking_result) {
    print_r ($tracking_result->Value->TrackingResult->UpdateDescription);
}

你试过吗

$description = $auth_call->TrackingResults-KeyValueOfstringArrayOfTrackingResultmFAkxlpY[0]->Value->TrackingResult-UpdateDescription; 
print_r($description);
$description = $auth_call->TrackingResults-KeyValueOfstringArrayOfTrackingResultmFAkxlpY[1]->Value->TrackingResult-UpdateDescription; 
print_r($description);

你也可以与foreach交互

希望这对你有帮助