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



我需要按重复值的数量对数组进行排序。

下面是一个示例:

$arr = array(
    1=> 'Love is true',
    2=> 'Love is true',
    3=> 'Hello Word',
    4=> 'Hello Word',
    5=> 'Hope',
    6=> 'Hope',
    7=> 'Love is true',
    8=> 'Hello Word',
    9=> 'Hello Word',
    10=>'Hope',
    11=>'Hello Word',
    12=>'Hope',
    13=>'Hello Word',
    14=>'Hello Word',
    15=>'Hello Word');
print_r($arr);

在这个数组中,我们可以看到

爱是真的>复制>3倍你好单词>复制> 8 倍希望>复制 4 倍>

我希望排序将重复次数最多的值放在第一位:

你好单词位置 1# 在数组中(重复 8 次)希望 2# 在数组中(重复 4 次)爱是真的3#数组(重复3次)

所以它返回这个数组:

Array
(
    [0] => Hello Word
    [1] => Hope 
    [2] =  Love is true
)
你可以

这样做:

$count = array_count_values($arr); // count each repetition
arsort($count); // sort the values
$array = array_keys($count); // get the expected array
print_r($array);

这将输出:

Array
(
    [0] => Hello Word
    [1] => Hope
    [2] => Love is true
)

在这里看到它的实际效果。


您可以在下面获得此答案中使用的函数的一些参考:

  • array_count_values:计算数组的所有值;
  • asort:对数组进行排序并保持索引关联;
  • array_keys:返回数组的所有键或键的子集


您可以var_dump该过程的每个步骤以查看发生了什么。

相关内容

  • 没有找到相关文章

最新更新