我有一个包含重复值的数组。我想对数组进行排序,以便具有最多重复项的值首先出现在行中。
我想输出如下:
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
答案 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
)