2016-09-09 6 views
2

オブジェクトをプロパティで比較しようとしています。私は彼らのhotelIdプロパティでそれらを比較したいと思います。 hotelIdはホテルごとにユニークです。たとえば、私はこのようにオブジェクトの配列を持っている場合:オブジェクトをプロパティで比較する方法

array(4) [ 
     0 => stdClass(5) { 
      hotelId => 238 
      hotelName => "Bellevue Dominican Bay" (22)  
     } 
     1 => stdClass(5) { 
      hotelId => 5432 
      hotelName => "Puerto Plata Village" (20) 
     } 
     2 => stdClass(5) { 
      hotelId => 238 
      hotelName => "Puerto" (20) 
     } 
    ] 

私は何をしようとしていますが、そのhotelIdを持つユニークなオブジェクトを持つことです。

SOFARマイコード:

$uniqueHotelObjects = array(); 
foreach($arrayOfHotelObjects as $hotel){ 
    foreach ($uniqueHotelObjects as $uniqueHotel) { 
     if($hotel->hotelId !== $uniqueHotel->hotelId){ 
      //?? 
     } 
    } 
} 
+0

重複を見つけたらどうしますか? – jeroen

+0

私は重複しているとき、私は1つだけのオブジェクト(最初のオブジェクト) – Roman

答えて

2

あなたは配列のキーとしてIDを使用する場合は、あなただけの1つのループ必要があります:あなたが代わりに最後のエントリを保持したい場合は、次のことができ

$uniqueHotelObjects = array(); 
foreach($arrayOfHotelObjects as $hotel){ 
    // check if the element already exists in the unique array 
    if (!array_key_exists($hotel->hotelId, $uniqueHotelObjects) { 
     $uniqueHotelObjects[$hotel->hotelId] = $hotel; 
    } 
} 

を単にifステートメントを削除してください。

関連する問題