2016-03-24 34 views
-1

Benim dizisi Üyelik:dizi öğelerini, ekran yalnızca en düşük değeri

array (size=3) 
    0 => 
    object(stdClass)[20] 
     public 'PkID' => string '488' (length=3) 
     public 'Price' => string '666' (length=3) 
     public 'discount_id' => string '1' (length=1) 
    1 => 
    object(stdClass)[38] 
     public 'PkID' => string '490' (length=3) 
     public 'Price' => string '999' (length=3) 
     public 'discount_id' => string '2' (length=1) 
    2 => 
    object(stdClass)[41] 
     public 'PkID' => string '489' (length=3) 
     public 'Price' => string '111' (length=3) 
     public 'discount_id' => string '1' (length=1) 

Soru ne kadar aynı discount_id numarasını paylaşan bir araya Ben grup elemanları can. Ama gruplandırdığımda, sadece en düşük Price tamsayı görüntülenmesini diliyorum.

DÜZENLEME: denedim şöyle gruplanmış diziler döndürür

foreach ($array as $value) 
{ 
    $new_array[$value->discount_id] = $value; 
} 

:

array (size=2) 
    1 => 
    object(stdClass)[41] 
     public 'PkID' => string '489' (length=3) 
     public 'Price' => string '111' (length=3) 
     public 'discount_id' => string '1' (length=1) 
    2 => 
    object(stdClass)[38] 
     public 'PkID' => string '490' (length=3) 
     public 'Price' => string '999' (length=3) 
     public 'discount_id' => string '2' (length=1) 

Ama örnekte (bu iki gruplandırılmış elemanlardan en küçük fiyat görüntülemek için nasıl bilmiyorum en küçük ama bu sadece tesadüf) basitleştirilmiş

+2

Yazım koduyla başlayın. Kimse senin için yapamaz. –

+0

Lütfen bize şimdiye kadar neler denediğinizi gösterin. (Bazı PHP kodları) –

+0

Verileriniz bir veritabanından mı geliyor? Varsa, SQL sorgusu sırasında gruplayabilirsiniz. – Technoh

cevap

0
$new_array = array(); 
foreach ($array as $value) { 
    if (array_key_exists($value->discount_id, $new_array)) { // element with given discount_id already exists 
     if ($new_array[$value->discount_id]->Price > $value->Price) { // existing element has higher price - replace it 
      $new_array[$value->discount_id] = $value; 
     } 
    } else { // add new element 
     $new_array[$value->discount_id] = $value; 
    } 
} 

yukarıda:

+0

Cevabınız için teşekkür ederim bayım ama nasıl çalıştığımı henüz kontrol edemiyorum 'array_key_exists' eğer $ new_array 'henüz mevcut değilse –

+0

@ShortPort benim güncellememi kontrol et –

İlgili konular