Php 从SOAP响应中拆分多维数组

Php 从SOAP响应中拆分多维数组,php,web-services,soap,Php,Web Services,Soap,我有下面的代码 <?php if (is_object($checkAvailability->availableHotels)) $hotelResponse[] = $checkAvailability->availableHotels; $hotelResponse = $checkAvailability->availableHotels; foreach ((array)$hotelResponse as $hnum => $hotel)

我有下面的代码

<?php
  if (is_object($checkAvailability->availableHotels)) 
  $hotelResponse[] = $checkAvailability->availableHotels;
  $hotelResponse = $checkAvailability->availableHotels;
  foreach ((array)$hotelResponse as $hnum => $hotel)
?> 
数组([0]=>stdClass对象([processId]=>H0-41925041[hotelCode]=>ITJHRV[availabilityStatus]=>InstantConfirmation[totalPrice]=>1421[totalTax]=>0[totalSalePrice]=>1509.38[currency]=>EUR[boardType]=>早餐自助餐厅[rooms]=>数组([0]=>stdClass对象([roomCategory]=>经典双人房或双人房-1大床[Pax]=>Array([0]=>stdClass对象([paxType]=>成人[age]=>30)[1]=>stdClass对象([paxType]=>成人[age]=>30])[totalRoomRate]=>1421[ratesPerNight]=>Array([0]=>stdClass对象([date]=>2015-04-20[金额]=>203)[1]=>stdClass对象([date]=>2015-04-21[金额]=>203][2]=>stdClass对象([date]=>2015-04-22[金额=>203][3]=>stdClass对象([日期]=>2015-04-23[金额=>203][4]=>stdClass对象([日期]=>2015-04-24[金额]=>203)[5]=>stdClass对象([日期]=>2015-04-25[金额]=>203)[6]=>stdClass对象([日期]=>2015-04-26[金额]=>203]))[1]=>stdClass对象([processId]=>HA-51032431]=>[hotelCode]=>ITRR5G[Availability Status]=>InstantConfirmation[totalPrice]=>1590[totalTax]=>0[totalSalePrice]=>0[currency]=>EUR[boardType]=>Bed&Breaks[roomCategory]=>stdClass对象([roomCategory]=>Twin Room(包括早餐和Wi-Fi)[Pax]=>Array([0]=>stdClass对象([paxType]=>成人[age]=>30[1]=>stdClass对象([paxType]=>成人[age]=>30])[totalRoomRate]=>1590[ratesPerNight]=>Array([0]=>stdClass对象([date]=>2015-04-20[amount]=>197)[1]=>stdClass对象([date]=>2015-04-21[amount]=>197][2]=>stdClass对象([date]=>2015-04-22[amount]=>239][3]=>stdClass对象([date]=>2015-04-23[金额=>239][4]=>stdClass对象([日期]=>2015-04-24[金额=>239][5]=>stdClass对象([日期]=>2015-04-25[金额=>239][6]=>stdClass对象([日期]=>2015-04-26[金额=>240]))

我怎样才能做到这一点?通过如下方式回应,获得每个回复

<?php echo $hotel->hotelCode?>
<?php echo $hotel->totalPrice?>

据我所知,我需要将2d数组转换为对象,但从那里我没有任何线索。请帮助。

尝试以下操作:

$hotelCodes = array() ;
$availHotels = $checkAvailability->availableHotels ;
foreach($availHotels as $hotel){
    $hotelCodes[] = $hotel->hotelCode ;
    //echo $hotel->hotelCode ;
    //echo $hotel->totalPrice ;
}

现在你有了
$hotelCodes
数组,可以像
$hotelCodes[0]
$hotelCode[1]
这样访问它。

我认为
$checkAvailability->availableHotels
返回数组…那么你为什么要将它传递给另一个2D数组
$hotelResponse[]
这将如何成为一个对象?是的,确实是它返回的数组。但我不知道如何将它转换为对象。
$hotelObject=json\u decode(json\u encode($hotelResponse),FALSE)
我已经插入了上面的行,但每次我在所有回送中回送它只返回一个值时仍然是一样的您已经更改了代码,
$hotelResponse
将始终是一个数组..而不是2D。共享以下结果:
print\r($checkAvailability->availableHotel)
谢谢,现在它会回显这两个值。但是我如何才能在页面中分别使用它们和响应?无法获取“iState”它们…您现在会粘贴期望的结果吗…?我的意思是隔离每个酒店代码并在页面中分别使用它们:
var_dump($hotel->hotelCode);`response是:
string(6)“ITRR5G”字符串(6)“ITD0TM”`和
echo$hotel->hotelCode;
响应是:ITRR5GITD0TMi希望分别回显变量中的每个字符串。
echo$hotel->hotelCode;
$hotelCodes = array() ;
$availHotels = $checkAvailability->availableHotels ;
foreach($availHotels as $hotel){
    $hotelCodes[] = $hotel->hotelCode ;
    //echo $hotel->hotelCode ;
    //echo $hotel->totalPrice ;
}