2015-01-08 3 views
0

일부 데이터를 얻기 위해 XML API 서비스 & SOAP를 사용하고 있습니다. 나는 아래 코드를 사용하여 hotelCode (다차원 가변성)를 sokut했다. SOAP 내가 만든 그 특정 검색에 대한 availeble있는 모든 availeble hotelcodes 응답 있다고 생각 그들에게다중 다차원 PHP 변수 정렬

<li> 
    <?php echo $hotelCodes[0];?></li> 
    <li> 
    <?php echo $hotelCodes[1];?></li> 
    <li> 
    <?php echo $hotelCodes[2];?> 
    </li> 
    <li> 
    <?php echo $hotelCodes[3];?> 
    </li> 

을 울리는

<?php 
$hotelCodes = array() ; 
$availHotels = $checkAvailability->availableHotels ; 
foreach($availHotels as $hotel){ 
    $hotelCodes[] = $hotel->hotelCode ; 
} 
?> 

그리고 난 다음

. 내가 예를 들어 아래와 같은 응답이 나타납니다

- ABCDE - This is Hotel Code 0 and it the code of Hotel Y/Double standard Room/Room Only 
- ABCDE - This is Hotel Code 0 and it the code of Hotel Y/Double standard Room/Breakfast 
- ZXCVB - This is Hotel Code 0 and it the code of Hotel X/Double standard Room/Room Only 
- ABCDE - This is Hotel Code 0 and it the code of Hotel Y/Twin Toom/Room Only 

print_r($hotelCodes); 내가 애 쓰고 $hotelCodes[] 그래서 난이 얻을 수있는 고유 한 값 (독특한 호텔 코드)

을 정렬 할 수있는 방법

Array ([0] => ABCDE [1] => ABCDE[2] => ZXCVB [3] => ABCDE) 

입니다 지금 :

<?php 
$hotelCodes = array() ; 
$availHotels = $checkAvailability->availableHotels ; 
foreach($availHotels as $hotel){ 
    $hotelCodes[] = $hotel->hotelCode ; 
    $result = array_unique($hotelCodes); 
print_r($result); 
} 
?> 

Print_r is :

Array ([0] => ITOI6P) Array ([0] => ITOI6P [1] => ITR03M) Array ([0] => ITOI6P [1] => ITR03M) Array ([0] => ITOI6P [1] => ITR03M [3] => ITJ64C) Array ([0] => ITOI6P [1] => ITR03M [3] => ITJ64C) Array ([0] => ITOI6P [1] => ITR03M [3] => ITJ64C [5] => ITRC24) 

그리고 에코는 다음과 같습니다

<li><?php echo $result[0];?></li> - displays : ITOI6P 
<li><?php echo $result[1];?></li> - displays : ITR03M 
<li><?php echo $result[2];?></li> - displays : empty 
<li><?php echo $result[3];?></li> - displays : ITJ64C 
<li><?php echo $result[4];?></li> - displays : empty 
<li><?php echo $result[5];?></li> - displays : ITRC24 
내가 그들 모두를 위해 독특한 호텔 코드의 다음 가득 얻을 수있는 방법

?

+0

코드를 얻으려는 것이거나 코드가있는 각 호텔에 대한 데이터가 필요합니까? 게다가? – prodigitalson

+0

이 단계에서는 코드 만 필요합니다. 각 호텔에있는 데이터는 sepparate 페이지 (세부 정보 페이지)의 호텔 코드에 따라 가져올 수 있습니다. –

답변

0

중복을 제거하는 array_unique 함수를 사용할 수 있습니다. 적용하기 전에 호텔 코드가 이제 귀하의 값이되도록 array_flip을하고, 그 반대의 경우도 마찬가지입니다.

2

고유 코드가 필요하면 코드 배열에 array_unique으로 전화하십시오. 주어진 코드로 모든 호텔에 대한 정보가 필요하다면 루프의 일부로 만들 수 있습니다 :

$hotelCodes = array() ; 
$availHotels = $checkAvailability->availableHotels ; 
foreach($availHotels as $hotel){ 
    if (!isset($hotelCodes[$hotel->hotelCode])) { 
     $hotelCodes[$hotel->hotelCode] = array(); 
    } 
    // you could ofcourse just take specific info from $hotel and put it in here. 
    $hotelCodes[$hotel->hotelCode][] = $hotel; 
}