根据重复值对数组进行排序

时间:2017-06-09 11:02:32

标签: php arrays sorting

我有一个包含重复值的数组。我想对数组进行排序,以便具有最多重复项的值首先出现在行中。

我想输出如下:

Rihanna
U2
Becca
Taylor Swift

我的文件包含数据:

rihanna
rihanna
rihanna
rihanna
taylor swift
becca
becca
u2
u2
u2

我的代码不起作用:

$input = file_get_contents('files');
$input = explode("\n", $input);

$acv = array_count_values($input);
$acv = arsort($acv); 
$result = array_keys($acv);
print_r($acv); //Outputs Blank

1 个答案:

答案 0 :(得分:1)

这是您的解决方案 你的数组是:

$arr = array('rihanna','rihanna','rihanna','rihanna','taylor swift','becca','becca','u2','u2','u2');

$acv = array_count_values($input);
// If need to remove element with count = 1

foreach($acv as $key => $value)
{
    echo $value;
    if($value == 1)
    {
        unset($nArr[$key]);
    }
}
//End
$fArr = array_flip($acv);

krsort($fArr);
print_r(array_values($fArr));

//output
Array
(
    [0] => rihanna
    [1] => u2
    [2] => becca
    [3] => taylor swift
)