2011-08-17 19 views
5

Yinelenen değerler içeren bir dizim var. Diziyi sıralamak istiyorum, böylece en çoğaltılmış olan değerler ilk sırada yer alıyor.Yinelenen değerlere dayalı PHP dizileri siparişi verme

array(2, 1, 3); 

'2' bu yüzden çoğu çiftleri vardır:

array(1, 2, 3, 2, 1, 2, 2); 

Ben şu içine yinelenenler miktarına göre kendisini sıralar, böylece bu diziyi sıralamak istiyorum: İşte benim dizinin bir örnek önce sıralanır, takip eden değerler daha az kopyalanır. Bunu nasıl başarabileceğimi bilen var mı? Başka bir anahtar değeri birleştirici dizideki dizi, ve artış oluşumları travers

cevap

11
$acv=array_count_values($array); // 1=>2, 2=>3,3=>1 
arsort($acv); //save keys,   2=>3, 1=>2, 3=>1 
$result=array_keys($acv); //get only keys 2,1,3 
+0

Mükemmel çalışıyor, teşekkürler – hohner

+0

Bu mükemmel! Bu büyük/küçük harfe duyarsızlığı kullanmak istiyorsanız: $ acv = array_count_values ​​(array_map ('strtolower', $ dizi)); – Alex

0
  1. .
  2. İkinci diziyi değerlere göre sıralayın.
  3. İkinci diziden array_keys olsun.
İlgili konular