Bu yapardın?
$array1 = array_count_values($array);
arsort($array1);
var_dump($array1);
verecek
array(3) {
["foo"]=>
int(3)
["item"]=>
int(2)
["bar"]=>
int(1)
}
ya da mutlaka tekrarlanan değerleri olarak onlara ihtiyacım var? evet, sen böyle bir şey için gidebilir:
usort($array,create_function('$a,$b',
'return $GLOBALS["array1"][$a]<$GLOBALS["array1"][$b];'));
Bu çirkin kod, ama tekniği göstermektedir. Bu php 5.3 kapakları ile iyi görünümlü yapmak da kolaydır, ancak 5.3 üzerinde iseniz bilmiyorum. İşte bu gibi görünecektir:
$acount=array_count_values($array = array("foo", "bar", "item", "item", "foo", "foo"));
usort($array,function($a,$b) use ($acount) { return $acount[$a]<$acount[$b]; });