2011-08-17 9 views
5

중복 값이 ​​포함 된 배열이 있습니다. 가장 중복 된 값이 첫 번째 줄에 나타나도록 배열을 정렬하고 싶습니다.중복 값을 기반으로 PHP 배열을 정렬

array(2, 1, 3); 

'2'때문에 대부분의 중복이를 :

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

내가이 다음에 중복의 양에 따라 자신을 주문 있도록이 배열을 정렬 할 : 여기 내 배열의 예 먼저 정렬되고 값이 중복됩니다. 아무도 내가 이것을 성취 할 수있는 방법을 알고 있습니까? 다른 키 - 값 결합 배열의 어레이, 및 증분 OCCURENCES 이송

답변

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

완벽하게 작동합니다. 감사합니다. – hohner

+0

이것은 완벽합니다. 이 대소 문자를 구분하고자 할 경우 : $ acv = array_count_values ​​(array_map ('strtolower', $ array)); – Alex

0
  1. .
  2. 두 번째 배열을 값순으로 정렬합니다.
  3. 두 번째 배열의 array_keys를 가져옵니다.
관련 문제